diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index e77e750547..e2ca0093dc 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -1,32 +1,32 @@ -/augur/cli/ @ccarterlandis -/augur/metrics/ @ccarterlandis @sgoggins -/augur/housekeeper/ @gabe-heim -/augur/server.py @ccarterlandis @gabe-heim -/augur/application.py @ccarterlandis @sgoggins @gabe-heim -/augur/routes/ @ccarterlandis @gabe-heim @sgoggins +/augur/cli/ @sgoggins +/augur/metrics/ @sgoggins @sgoggins +/augur/housekeeper/ @sgoggins +/augur/server.py @sgoggins @sgoggins +/augur/application.py @sgoggins @sgoggins @sgoggins +/augur/routes/ @sgoggins @sgoggins @sgoggins -/frontend/ @gabe-heim @sgoggins +/frontend/ @sgoggins @sgoggins -/schema/ @sgoggins @ccarterlandis +/schema/ @sgoggins @sgoggins /schema/generate @sgoggins -/workers/ @ccarterlandis @gabe-heim @sgoggins +/workers/ @sgoggins @sgoggins @sgoggins -/README.md @sgoggins @ccarterlandis -/CONTRIBUTING.md @sgoggins @ccarterlandis -/LICENSE @sgoggins @ccarterlandis -/CODE_OF_CONDUCT.md @sgoggins @ccarterlandis +/README.md @sgoggins @sgoggins +/CONTRIBUTING.md @sgoggins @sgoggins +/LICENSE @sgoggins @sgoggins +/CODE_OF_CONDUCT.md @sgoggins @sgoggins -/tests/ @ccarterlandis -/util/docker @ccarterlandis -/scripts/ @ccarterlandis -/docs/ @ccarterlandis -/.dockerignore @ccarterlandis -/.travis.yml @ccarterlandis -*compose.yml @ccarterlandis -/readthedocs.yml @ccarterlandis -/Makefile @ccarterlandis -/tox.ini @ccarterlandis -*requirements.txt @ccarterlandis -/setup.py @ccarterlandis @sgoggins +/tests/ @sgoggins +/util/docker @sgoggins +/scripts/ @sgoggins +/docs/ @sgoggins +/.dockerignore @sgoggins +/.travis.yml @sgoggins +*compose.yml @sgoggins +/readthedocs.yml @sgoggins +/Makefile @sgoggins +/tox.ini @sgoggins +*requirements.txt @sgoggins +/setup.py @sgoggins @sgoggins diff --git a/.gitignore b/.gitignore index 95b4a2a891..07f4f68187 100644 --- a/.gitignore +++ b/.gitignore @@ -170,3 +170,6 @@ workers/clustering_worker/vocabulary_count #nohup logs nohup.out + +#vscode +.vscode diff --git a/augur/config.py b/augur/config.py index f58c0f3410..ad2db38f6b 100644 --- a/augur/config.py +++ b/augur/config.py @@ -66,6 +66,14 @@ "model": "deps", "repo_group_id": 0 }, + { + "delay": 150000, + "given": [ + "git_url" + ], + "model": "ossf_scorecard", + "repo_group_id": 0 + }, { "delay": 150000, "given": [ diff --git a/docs/source/development-guide/workers/toc.rst b/docs/source/development-guide/workers/toc.rst index 33ded8fd46..6993c15fe9 100644 --- a/docs/source/development-guide/workers/toc.rst +++ b/docs/source/development-guide/workers/toc.rst @@ -43,7 +43,7 @@ Models & Tables they populate- 1.9. message: Stores the messages on the MR thread. - 1.10: contributors: Stores the information related to each contributor of the project. It's implementation is in the base worker class. `query_gitlab_contribtutors` + 1.10: contributors: Stores the information related to each contributor of the project. It's implementation is in the base worker class. `query_gitlab_contributors` 2. merge_request_commits: This model deals with the commit data of each MR- diff --git a/docs/source/docker/docker-compose.rst b/docs/source/docker/docker-compose.rst index 76b42305da..4f839667fb 100644 --- a/docs/source/docker/docker-compose.rst +++ b/docs/source/docker/docker-compose.rst @@ -50,6 +50,8 @@ Stopping the containers To stop the containers, do a keyboard inturrupt while the script is running ``Ctrl+C``. The script will then ask if you want to generate log files to look at later. +If not using the script, the standard method of stopping the containers that you started should work such as ``docker stop`` or ``docker-compose down`` + Once you've got your container up and running, checkout out `how to use them `_ @@ -58,6 +60,21 @@ Docker Compose without a script This section of the documentation details how to use Augur's Docker Compose configuration to get the full stack up and running as fast as possible without the recommended helper script. +.. warning:: + + Don't forget to provide your external database credentials in the ``docker_env.txt`` file. Additionally an ``.env`` file is needed for the ``*.yml`` files' environment variables. Don't forget to set the variables specified specified in these files namely ``AUGUR_DB_TYPE`` and ``AUGUR_DB_HOST``. + + Example docker_env.txt: + .. code:: + + AUGUR_GITHUB_API_KEY=your_key_here + AUGUR_DB_SCHEMA_BUILD=0 + AUGUR_DB_HOST=xx.xxx.xxx.xxx + AUGUR_DB_NAME=augur + AUGUR_DB_PORT=5432 + AUGUR_DB_USER=augur + AUGUR_DB_PASSWORD=somePassword + To run Augur **without** the database container: @@ -65,17 +82,13 @@ To run Augur **without** the database container: docker-compose -f docker-compose.yml up -.. warning:: - - Don't forget to provide your external database credentials in the ``docker_env.txt`` file. Additionally the ``.env`` file is needed for the ``*.yml`` files' environment variables. Don't forget to set the variables specified specified in these files namely ``AUGUR_DB_TYPE`` and ``AUGUR_DB_HOST``. - To run Augur **with** the database container: .. code-block:: bash docker-compose -f docker-compose.yml -f database-compose.yml up -If you want to use the ``test_data`` image with the data preloaded, change the ``image`` line of ``database-compose.yml`` to\: +If you want to use the ``test_data`` image with the data preloaded, change the ``image`` line of ``database-compose.yml`` to: .. code:: diff --git a/docs/source/docker/getting-started.rst b/docs/source/docker/getting-started.rst index 494928bd20..e5b8f5e439 100644 --- a/docs/source/docker/getting-started.rst +++ b/docs/source/docker/getting-started.rst @@ -7,10 +7,10 @@ For the Docker Saavy Who Want to Understand How the Sausage is Made: Augur provides several Docker images designed to get you started with our software as quickly as possible. They are: - ``augurlabs/augur:backend``, our backend data collection and metrics API -- ``augurlabs/augur:frontend``, our metrics visualization frontend +- ``augurlabs/augur:frontend``, our metrics visualization frontend (Experimental, will be replaced in the future) .. warning:: - The frontend is very out of date and will likely not work with the backend very well. It is still available however. + The frontend is very out of date and will likely not work. It is still available however it is in the process of being replaced with an entirely new frontend so the old frontend is not being actively fixed. - ``augurlabs/augur:database``, an empty PostgreSQL database with the Augur schema installed - ``augurlabs/augur:test_data``, a PostgreSQL database loaded with the data used in our testing environment @@ -34,7 +34,7 @@ Before you get started with Docker, you'll need to set up a PostgreSQL instance # TYPE DATABASE USER ADDRESS METHOD host all all 0.0.0.0/0 md5 -If you're interested solely in data collection and do not care if your data is not persisted, we recommend using our Docker Compose script. This will start up the backend and frontend containers simultaneously, well as an optional database container; however, if you are looking to collect data long term, we **strongly suggest setting up a persistent database instance**; you can find instructions for doing so `here <../getting-started/database.html>`_. Remember to save off the credentials for your newly minted database; you'll need them shortly. +If you're interested solely in data collection, we recommend using our test data with the Docker Compose script. This will start up the backend and frontend containers simultaneously, well as an optional database container; however, if you are looking to collect data long term, we **strongly suggest setting up a persistent database instance**; you can find instructions for doing so `here <../getting-started/database.html>`_. Remember to save off the credentials for your newly minted database; you'll need them shortly. If you don't care if your data doesn't get persisted or are doing local development, you can use the database containers we provide. diff --git a/docs/source/docker/quick-start.rst b/docs/source/docker/quick-start.rst index e0aaa134e4..444e9cdf63 100644 --- a/docs/source/docker/quick-start.rst +++ b/docs/source/docker/quick-start.rst @@ -3,13 +3,13 @@ Docker Quick Start Before you get off to such a quick start, go ahead and 1. create a fork from augur starting at https://github.com/chaoss/augur 2. clone that fork locally - 3. Checkout the appropriate branch to work on (see notes below). For right now, to checkout the ``test`` branch.: + 3. Checkout the appropriate branch to work on (see notes below): .. code-block:: python - git checkout test + git checkout dev - 4. Usually, we'll have you checkout the `dev` branch, but through August 9, 2021, that branch is undergoing refactoring, to be be maintable, and is not reliable for new development + 4. Usually, we'll have you checkout the `dev` branch. 5. Make sure to install all the pre-requisites here: https://oss-augur.readthedocs.io/en/master/getting-started/installation.html#dependencies @@ -34,4 +34,3 @@ Before you get off to such a quick start, go ahead and sudo ./docker-setup.sh -**Detailed Instructions that explain each step, and alternative, are available on the next page** diff --git a/docs/source/docker/usage.rst b/docs/source/docker/usage.rst index cf08e3586c..1bb1efd1ef 100644 --- a/docs/source/docker/usage.rst +++ b/docs/source/docker/usage.rst @@ -3,32 +3,6 @@ Interacting with the containers Once the containers are up and running, you have a few options for interacting with them. They will automatically collect data for your repositories - but how do you add repositories? We're glad you asked! -Using the repo loading UI --------------------------- - -.. warning:: - The frontend is very out of date and will likely not work with the backend very well. It is still available however. The recommended way of accessing augur through docker is through standard api calls at ``localhost:5000``. - - -Augur offers a special graphical interface for loading repository groups when using the Docker containers. This component is called ``augurface``, and is available anytime you are using the ``backend`` and ``frontend`` services together. - -To use it, first start the two services (we recommend using `Docker Compose Script `_ for this): - -.. code-block:: bash - - # this example uses the docker-setup script - $ sudo ./docker-setup.sh - -Then, navigate to ``http://localhost:8080/augurface/`` in your browser - **note the trailing slash!** Once you're on this page, you'll need to enter in your Augur API key in the box on the top right. On a default Docker installation, you can use ``docker_key``, but we recommend changing this as soon as possible if you are planning to use the instance long-term. Commands for working with the API keys can be found `here <../getting-started/command-line-interface/db.html>`_. - -Once you've entered your API key, you will be able to use the UI to automatically import GitHub organizations as a repo group, or manually create and edit repo groups yourself. Deleting repos or repo groups is not currently supported, but would be a great contribution! - -.. warning:: - - Because the UI only requires an API key to edit the database, **we recommend that you do not publicly deploy any Docker instance outside your local network or intranet.** The Docker build is intended ONLY for short term data collection usage and local development. We understand if this inconvenciences you, but the functionality is very new to Augur and still needs time to be production ready. **You have been warned.** - -If are not using the ``frontend`` service, you can use the `database CLI <../getting-started/command-line-interface/db.html>`_ from within the container to add repos. See below for how to start a shell within the container. - Accessing the containers --------------------------- @@ -39,7 +13,7 @@ If you need to access a running container (perhaps to check the worker logs) or $ docker exec -it /bin/bash -You can also step into a running container at every step of the build process and see the status of the container. +You can also step into a running container at every step of the build process and see the status of the container. (This is typically used for debugging) First, build the image to output build stages. @@ -66,9 +40,39 @@ By default, the only logs shown by the container are the logs of Augur's main da # to watch the logs in real time (like tail -f) $ docker-compose logs -f -If you deployed the augur frontend and backend together using the script, you are automtically prompted to ask to save logs to a file once you stop the containers. The logs can be found in ``/var/log/`` + +As for worker logs. They are currently a work in progress to be made easier to view. In the near future they will automatically populate on the host machine and it will not be neccessary to step inside the container. + +Using the repo loading UI [NOT RECOMMENDED] +------------------------------------------- + +.. warning:: + The frontend is very out of date and will *very likely* not work with the backend. It is still available however. The recommended way of accessing augur through docker is through standard api calls at ``localhost:5000``. + + +Augur offers a special graphical interface for loading repository groups when using the Docker containers. This component is called ``augurface``, and is available anytime you are using the ``backend`` and ``frontend`` services together. + +To use it, first start the two services (we recommend using `Docker Compose Script `_ for this): + +.. code-block:: bash + + # this example uses the docker-setup script + $ sudo ./docker-setup.sh + +Then, navigate to ``http://localhost:8080/augurface/`` in your browser - **note the trailing slash!** Once you're on this page, you'll need to enter in your Augur API key in the box on the top right. On a default Docker installation, you can use ``docker_key``, but we recommend changing this as soon as possible if you are planning to use the instance long-term. Commands for working with the API keys can be found `here <../getting-started/command-line-interface/db.html>`_. + +Once you've entered your API key, you will be able to use the UI to automatically import GitHub organizations as a repo group, or manually create and edit repo groups yourself. Deleting repos or repo groups is not currently supported, but would be a great contribution! + +.. warning:: + + Because the UI only requires an API key to edit the database, **we recommend that you do not publicly deploy any Docker instance outside your local network or intranet.** The Docker build is intended ONLY for short term data collection usage and local development. We understand if this inconvenciences you, but the functionality is very new to Augur and still needs time to be production ready. **You have been warned.** + +If are not using the ``frontend`` service, you can use the `database CLI <../getting-started/command-line-interface/db.html>`_ from within the container to add repos. See below for how to start a shell within the container. + + Conclusion ----------- This wraps up the Docker section of the Augur documentation. We hope it was useful! Happy hacking! + diff --git a/docs/source/rest-api/spec.yml b/docs/source/rest-api/spec.yml index 1d26fea87d..2778e9ea78 100644 --- a/docs/source/rest-api/spec.yml +++ b/docs/source/rest-api/spec.yml @@ -74,7 +74,7 @@ paths: type: array tags: - utility - /repo-groups/:repo_group_id/Committers: + /repo-groups/:repo_group_id/committers: get: description: 'Number of persons opening an issue for the first time. ' externalDocs: diff --git a/docs/source/schema/20210811-augur-0.2.1-release.png b/docs/source/schema/20210811-augur-0.2.1-release.png new file mode 100644 index 0000000000..7459c36a9a Binary files /dev/null and b/docs/source/schema/20210811-augur-0.2.1-release.png differ diff --git a/docs/source/schema/20210811-augur-0.2.1-release.svg b/docs/source/schema/20210811-augur-0.2.1-release.svg new file mode 100644 index 0000000000..14e714627b --- /dev/null +++ b/docs/source/schema/20210811-augur-0.2.1-release.svg @@ -0,0 +1,60200 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/source/schema/data-model.rst b/docs/source/schema/data-model.rst index 58d5db61c3..98aef18619 100644 --- a/docs/source/schema/data-model.rst +++ b/docs/source/schema/data-model.rst @@ -1,14 +1,14 @@ Data Model =========== -The latest version of Augur includes a schema_ that brings together data from : +The latest version of Augur includes a schema_ that brings together data from : 1. git repositories, including GitHub 2. issue trackers 3. mailing lists 4. library dependency trees 5. the Linux Foundation's badging program -6. code complexity and contribution counting ... and MUCH MUCH MORE. +6. code complexity and contribution counting ... and MUCH MUCH MORE. This document details how to create the schema as well as some information on its contents and design. @@ -72,8 +72,16 @@ the DoSOCSv2 project: https://github.com/Nebrethar/DoSOCSv2 .. _schema: -------------------- -Complete Data Model +Complete Data Model, With Key Table Types Highlighted -------------------- .. image:: schema.png :width: 1200 - :alt: Augur Unified Schema + :alt: Augur Unified Schema + + +-------------------- +Complete Data Model, For Current Release +-------------------- +.. image:: 20210811-augur-0.2.1-release.png + :width: 1200 + :alt: Augur Unified Schema diff --git a/metadata.py b/metadata.py index 9465e4347b..35614388ce 100644 --- a/metadata.py +++ b/metadata.py @@ -5,8 +5,8 @@ __short_description__ = "Python 3 package for free/libre and open-source software community metrics & data collection" -__version__ = "0.17.0" -__release__ = "v0.17.0" +__version__ = "0.20.1" +__release__ = "v0.20.1" __license__ = "MIT" __copyright__ = "CHAOSS & Augurlabs 2021" diff --git a/schema/20200311-Release-0.15.1.sql b/schema/20200311-Release-0.15.1.sql deleted file mode 100644 index d1cee16612..0000000000 --- a/schema/20200311-Release-0.15.1.sql +++ /dev/null @@ -1,4412 +0,0 @@ --- #SPDX-License-Identifier: MIT --- ---------------------------- - -CREATE SCHEMA IF NOT EXISTS augur_data; -CREATE SCHEMA IF NOT EXISTS augur_operations; -CREATE SCHEMA IF NOT EXISTS spdx; --- create the schemas --- ----------------------- - --- ---------------------------- --- Sequence structure for annotation_types_annotation_type_id_seq --- ---------------------------- -DROP SEQUENCE IF EXISTS "spdx"."annotation_types_annotation_type_id_seq"; -CREATE SEQUENCE "spdx"."annotation_types_annotation_type_id_seq" -INCREMENT 1 -MINVALUE 1 -MAXVALUE 2147483647 -START 1 -CACHE 1; -ALTER SEQUENCE "spdx"."annotation_types_annotation_type_id_seq" OWNER TO "augur"; - --- ---------------------------- --- Sequence structure for annotations_annotation_id_seq --- ---------------------------- -DROP SEQUENCE IF EXISTS "spdx"."annotations_annotation_id_seq"; -CREATE SEQUENCE "spdx"."annotations_annotation_id_seq" -INCREMENT 1 -MINVALUE 1 -MAXVALUE 2147483647 -START 1 -CACHE 1; -ALTER SEQUENCE "spdx"."annotations_annotation_id_seq" OWNER TO "augur"; - --- ---------------------------- --- Sequence structure for augur_repo_map_map_id_seq --- ---------------------------- -DROP SEQUENCE IF EXISTS "spdx"."augur_repo_map_map_id_seq"; -CREATE SEQUENCE "spdx"."augur_repo_map_map_id_seq" -INCREMENT 1 -MINVALUE 1 -MAXVALUE 2147483647 -START 1 -CACHE 1; -ALTER SEQUENCE "spdx"."augur_repo_map_map_id_seq" OWNER TO "augur"; - --- ---------------------------- --- Sequence structure for creator_types_creator_type_id_seq --- ---------------------------- -DROP SEQUENCE IF EXISTS "spdx"."creator_types_creator_type_id_seq"; -CREATE SEQUENCE "spdx"."creator_types_creator_type_id_seq" -INCREMENT 1 -MINVALUE 1 -MAXVALUE 2147483647 -START 1 -CACHE 1; -ALTER SEQUENCE "spdx"."creator_types_creator_type_id_seq" OWNER TO "augur"; - --- ---------------------------- --- Sequence structure for creators_creator_id_seq --- ---------------------------- -DROP SEQUENCE IF EXISTS "spdx"."creators_creator_id_seq"; -CREATE SEQUENCE "spdx"."creators_creator_id_seq" -INCREMENT 1 -MINVALUE 1 -MAXVALUE 2147483647 -START 1 -CACHE 1; -ALTER SEQUENCE "spdx"."creators_creator_id_seq" OWNER TO "augur"; - --- ---------------------------- --- Sequence structure for document_namespaces_document_namespace_id_seq --- ---------------------------- -DROP SEQUENCE IF EXISTS "spdx"."document_namespaces_document_namespace_id_seq"; -CREATE SEQUENCE "spdx"."document_namespaces_document_namespace_id_seq" -INCREMENT 1 -MINVALUE 1 -MAXVALUE 2147483647 -START 1 -CACHE 1; -ALTER SEQUENCE "spdx"."document_namespaces_document_namespace_id_seq" OWNER TO "augur"; - --- ---------------------------- --- Sequence structure for documents_creators_document_creator_id_seq --- ---------------------------- -DROP SEQUENCE IF EXISTS "spdx"."documents_creators_document_creator_id_seq"; -CREATE SEQUENCE "spdx"."documents_creators_document_creator_id_seq" -INCREMENT 1 -MINVALUE 1 -MAXVALUE 2147483647 -START 1 -CACHE 1; -ALTER SEQUENCE "spdx"."documents_creators_document_creator_id_seq" OWNER TO "augur"; - --- ---------------------------- --- Sequence structure for documents_document_id_seq --- ---------------------------- -DROP SEQUENCE IF EXISTS "spdx"."documents_document_id_seq"; -CREATE SEQUENCE "spdx"."documents_document_id_seq" -INCREMENT 1 -MINVALUE 1 -MAXVALUE 2147483647 -START 1 -CACHE 1; -ALTER SEQUENCE "spdx"."documents_document_id_seq" OWNER TO "augur"; - --- ---------------------------- --- Sequence structure for external_refs_external_ref_id_seq --- ---------------------------- -DROP SEQUENCE IF EXISTS "spdx"."external_refs_external_ref_id_seq"; -CREATE SEQUENCE "spdx"."external_refs_external_ref_id_seq" -INCREMENT 1 -MINVALUE 1 -MAXVALUE 2147483647 -START 1 -CACHE 1; -ALTER SEQUENCE "spdx"."external_refs_external_ref_id_seq" OWNER TO "augur"; - --- ---------------------------- --- Sequence structure for file_contributors_file_contributor_id_seq --- ---------------------------- -DROP SEQUENCE IF EXISTS "spdx"."file_contributors_file_contributor_id_seq"; -CREATE SEQUENCE "spdx"."file_contributors_file_contributor_id_seq" -INCREMENT 1 -MINVALUE 1 -MAXVALUE 2147483647 -START 1 -CACHE 1; -ALTER SEQUENCE "spdx"."file_contributors_file_contributor_id_seq" OWNER TO "augur"; - --- ---------------------------- --- Sequence structure for files_file_id_seq --- ---------------------------- -DROP SEQUENCE IF EXISTS "spdx"."files_file_id_seq"; -CREATE SEQUENCE "spdx"."files_file_id_seq" -INCREMENT 1 -MINVALUE 1 -MAXVALUE 2147483647 -START 1 -CACHE 1; -ALTER SEQUENCE "spdx"."files_file_id_seq" OWNER TO "augur"; - --- ---------------------------- --- Sequence structure for files_licenses_file_license_id_seq --- ---------------------------- -DROP SEQUENCE IF EXISTS "spdx"."files_licenses_file_license_id_seq"; -CREATE SEQUENCE "spdx"."files_licenses_file_license_id_seq" -INCREMENT 1 -MINVALUE 1 -MAXVALUE 2147483647 -START 1 -CACHE 1; -ALTER SEQUENCE "spdx"."files_licenses_file_license_id_seq" OWNER TO "augur"; - --- ---------------------------- --- Sequence structure for files_scans_file_scan_id_seq --- ---------------------------- -DROP SEQUENCE IF EXISTS "spdx"."files_scans_file_scan_id_seq"; -CREATE SEQUENCE "spdx"."files_scans_file_scan_id_seq" -INCREMENT 1 -MINVALUE 1 -MAXVALUE 2147483647 -START 1 -CACHE 1; -ALTER SEQUENCE "spdx"."files_scans_file_scan_id_seq" OWNER TO "augur"; - --- ---------------------------- --- Sequence structure for identifiers_identifier_id_seq --- ---------------------------- -DROP SEQUENCE IF EXISTS "spdx"."identifiers_identifier_id_seq"; -CREATE SEQUENCE "spdx"."identifiers_identifier_id_seq" -INCREMENT 1 -MINVALUE 1 -MAXVALUE 2147483647 -START 1 -CACHE 1; -ALTER SEQUENCE "spdx"."identifiers_identifier_id_seq" OWNER TO "augur"; - --- ---------------------------- --- Sequence structure for licenses_license_id_seq --- ---------------------------- -DROP SEQUENCE IF EXISTS "spdx"."licenses_license_id_seq"; -CREATE SEQUENCE "spdx"."licenses_license_id_seq" -INCREMENT 1 -MINVALUE 1 -MAXVALUE 2147483647 -START 1 -CACHE 1; -ALTER SEQUENCE "spdx"."licenses_license_id_seq" OWNER TO "augur"; - --- ---------------------------- --- Sequence structure for packages_files_package_file_id_seq --- ---------------------------- -DROP SEQUENCE IF EXISTS "spdx"."packages_files_package_file_id_seq"; -CREATE SEQUENCE "spdx"."packages_files_package_file_id_seq" -INCREMENT 1 -MINVALUE 1 -MAXVALUE 2147483647 -START 1 -CACHE 1; -ALTER SEQUENCE "spdx"."packages_files_package_file_id_seq" OWNER TO "augur"; - --- ---------------------------- --- Sequence structure for packages_package_id_seq --- ---------------------------- -DROP SEQUENCE IF EXISTS "spdx"."packages_package_id_seq"; -CREATE SEQUENCE "spdx"."packages_package_id_seq" -INCREMENT 1 -MINVALUE 1 -MAXVALUE 2147483647 -START 1 -CACHE 1; -ALTER SEQUENCE "spdx"."packages_package_id_seq" OWNER TO "augur"; - --- ---------------------------- --- Sequence structure for packages_scans_package_scan_id_seq --- ---------------------------- -DROP SEQUENCE IF EXISTS "spdx"."packages_scans_package_scan_id_seq"; -CREATE SEQUENCE "spdx"."packages_scans_package_scan_id_seq" -INCREMENT 1 -MINVALUE 1 -MAXVALUE 2147483647 -START 1 -CACHE 1; -ALTER SEQUENCE "spdx"."packages_scans_package_scan_id_seq" OWNER TO "augur"; - --- ---------------------------- --- Sequence structure for projects_package_id_seq --- ---------------------------- -DROP SEQUENCE IF EXISTS "spdx"."projects_package_id_seq"; -CREATE SEQUENCE "spdx"."projects_package_id_seq" -INCREMENT 1 -MINVALUE 1 -MAXVALUE 2147483647 -START 1 -CACHE 1; -ALTER SEQUENCE "spdx"."projects_package_id_seq" OWNER TO "augur"; - --- ---------------------------- --- Sequence structure for relationship_types_relationship_type_id_seq --- ---------------------------- -DROP SEQUENCE IF EXISTS "spdx"."relationship_types_relationship_type_id_seq"; -CREATE SEQUENCE "spdx"."relationship_types_relationship_type_id_seq" -INCREMENT 1 -MINVALUE 1 -MAXVALUE 2147483647 -START 1 -CACHE 1; -ALTER SEQUENCE "spdx"."relationship_types_relationship_type_id_seq" OWNER TO "augur"; - --- ---------------------------- --- Sequence structure for relationships_relationship_id_seq --- ---------------------------- -DROP SEQUENCE IF EXISTS "spdx"."relationships_relationship_id_seq"; -CREATE SEQUENCE "spdx"."relationships_relationship_id_seq" -INCREMENT 1 -MINVALUE 1 -MAXVALUE 2147483647 -START 1 -CACHE 1; -ALTER SEQUENCE "spdx"."relationships_relationship_id_seq" OWNER TO "augur"; - --- ---------------------------- --- Sequence structure for scanners_scanner_id_seq --- ---------------------------- -DROP SEQUENCE IF EXISTS "spdx"."scanners_scanner_id_seq"; -CREATE SEQUENCE "spdx"."scanners_scanner_id_seq" -INCREMENT 1 -MINVALUE 1 -MAXVALUE 2147483647 -START 1 -CACHE 1; -ALTER SEQUENCE "spdx"."scanners_scanner_id_seq" OWNER TO "augur"; - --- ---------------------------- --- Sequence structure for augur_settings_id_seq --- ---------------------------- -DROP SEQUENCE IF EXISTS "augur_operations"."augur_settings_id_seq"; -CREATE SEQUENCE "augur_operations"."augur_settings_id_seq" -INCREMENT 1 -MINVALUE 1 -MAXVALUE 9223372036854775807 -START 1 -CACHE 1; -ALTER SEQUENCE "augur_operations"."augur_settings_id_seq" OWNER TO "augur"; - --- ---------------------------- --- Sequence structure for gh_worker_history_history_id_seq --- ---------------------------- -DROP SEQUENCE IF EXISTS "augur_operations"."gh_worker_history_history_id_seq"; -CREATE SEQUENCE "augur_operations"."gh_worker_history_history_id_seq" -INCREMENT 1 -MINVALUE 1 -MAXVALUE 9223372036854775807 -START 1 -CACHE 1; -ALTER SEQUENCE "augur_operations"."gh_worker_history_history_id_seq" OWNER TO "augur"; - --- ---------------------------- --- Sequence structure for worker_oauth_oauth_id_seq --- ---------------------------- -DROP SEQUENCE IF EXISTS "augur_operations"."worker_oauth_oauth_id_seq"; -CREATE SEQUENCE "augur_operations"."worker_oauth_oauth_id_seq" -INCREMENT 1 -MINVALUE 1 -MAXVALUE 9223372036854775807 -START 1000 -CACHE 1; -ALTER SEQUENCE "augur_operations"."worker_oauth_oauth_id_seq" OWNER TO "augur"; - --- ---------------------------- - --- ---------------------------- --- Sequence structure for augur_data.repo_insights_ri_id_seq --- ---------------------------- -DROP SEQUENCE IF EXISTS "augur_data"."augur_data.repo_insights_ri_id_seq"; -CREATE SEQUENCE "augur_data"."augur_data.repo_insights_ri_id_seq" -INCREMENT 1 -MINVALUE 1 -MAXVALUE 9223372036854775807 -START 25430 -CACHE 1; -ALTER SEQUENCE "augur_data"."augur_data.repo_insights_ri_id_seq" OWNER TO "augur"; - --- ---------------------------- --- Sequence structure for chaoss_metric_status_cms_id_seq --- ---------------------------- -DROP SEQUENCE IF EXISTS "augur_data"."chaoss_metric_status_cms_id_seq"; -CREATE SEQUENCE "augur_data"."chaoss_metric_status_cms_id_seq" -INCREMENT 1 -MINVALUE 1 -MAXVALUE 9223372036854775807 -START 1 -CACHE 1; -ALTER SEQUENCE "augur_data"."chaoss_metric_status_cms_id_seq" OWNER TO "augur"; - --- ---------------------------- --- Sequence structure for commit_comment_ref_cmt_comment_id_seq --- ---------------------------- -DROP SEQUENCE IF EXISTS "augur_data"."commit_comment_ref_cmt_comment_id_seq"; -CREATE SEQUENCE "augur_data"."commit_comment_ref_cmt_comment_id_seq" -INCREMENT 1 -MINVALUE 1 -MAXVALUE 9223372036854775807 -START 25430 -CACHE 1; -ALTER SEQUENCE "augur_data"."commit_comment_ref_cmt_comment_id_seq" OWNER TO "augur"; - --- ---------------------------- --- Sequence structure for commit_parents_parent_id_seq --- ---------------------------- -DROP SEQUENCE IF EXISTS "augur_data"."commit_parents_parent_id_seq"; -CREATE SEQUENCE "augur_data"."commit_parents_parent_id_seq" -INCREMENT 1 -MINVALUE 1 -MAXVALUE 9223372036854775807 -START 25430 -CACHE 1; -ALTER SEQUENCE "augur_data"."commit_parents_parent_id_seq" OWNER TO "augur"; - --- ---------------------------- --- Sequence structure for commits_cmt_id_seq --- ---------------------------- -DROP SEQUENCE IF EXISTS "augur_data"."commits_cmt_id_seq"; -CREATE SEQUENCE "augur_data"."commits_cmt_id_seq" -INCREMENT 1 -MINVALUE 1 -MAXVALUE 9223372036854775807 -START 25430 -CACHE 1; -ALTER SEQUENCE "augur_data"."commits_cmt_id_seq" OWNER TO "augur"; - --- ---------------------------- --- Sequence structure for contributor_affiliations_ca_id_seq --- ---------------------------- -DROP SEQUENCE IF EXISTS "augur_data"."contributor_affiliations_ca_id_seq"; -CREATE SEQUENCE "augur_data"."contributor_affiliations_ca_id_seq" -INCREMENT 1 -MINVALUE 1 -MAXVALUE 9223372036854775807 -START 25430 -CACHE 1; -ALTER SEQUENCE "augur_data"."contributor_affiliations_ca_id_seq" OWNER TO "augur"; - --- ---------------------------- --- Sequence structure for contributors_aliases_cntrb_a_id_seq --- ---------------------------- -DROP SEQUENCE IF EXISTS "augur_data"."contributors_aliases_cntrb_a_id_seq"; -CREATE SEQUENCE "augur_data"."contributors_aliases_cntrb_a_id_seq" -INCREMENT 1 -MINVALUE 1 -MAXVALUE 9223372036854775807 -START 25430 -CACHE 1; -ALTER SEQUENCE "augur_data"."contributors_aliases_cntrb_a_id_seq" OWNER TO "augur"; - --- ---------------------------- --- Sequence structure for contributors_cntrb_id_seq --- ---------------------------- -DROP SEQUENCE IF EXISTS "augur_data"."contributors_cntrb_id_seq"; -CREATE SEQUENCE "augur_data"."contributors_cntrb_id_seq" -INCREMENT 1 -MINVALUE 1 -MAXVALUE 9223372036854775807 -START 25430 -CACHE 1; -ALTER SEQUENCE "augur_data"."contributors_cntrb_id_seq" OWNER TO "augur"; - --- ---------------------------- --- Sequence structure for contributors_history_cntrb_history_id_seq --- ---------------------------- -DROP SEQUENCE IF EXISTS "augur_data"."contributors_history_cntrb_history_id_seq"; -CREATE SEQUENCE "augur_data"."contributors_history_cntrb_history_id_seq" -INCREMENT 1 -MINVALUE 1 -MAXVALUE 9223372036854775807 -START 25430 -CACHE 1; -ALTER SEQUENCE "augur_data"."contributors_history_cntrb_history_id_seq" OWNER TO "augur"; - --- ---------------------------- --- Sequence structure for discourse_insights_msg_discourse_id_seq --- ---------------------------- -DROP SEQUENCE IF EXISTS "augur_data"."discourse_insights_msg_discourse_id_seq"; -CREATE SEQUENCE "augur_data"."discourse_insights_msg_discourse_id_seq" -INCREMENT 1 -MINVALUE 1 -MAXVALUE 9223372036854775807 -START 1 -CACHE 1; -ALTER SEQUENCE "augur_data"."discourse_insights_msg_discourse_id_seq" OWNER TO "augur"; - --- ---------------------------- --- Sequence structure for issue_assignees_issue_assignee_id_seq --- ---------------------------- -DROP SEQUENCE IF EXISTS "augur_data"."issue_assignees_issue_assignee_id_seq"; -CREATE SEQUENCE "augur_data"."issue_assignees_issue_assignee_id_seq" -INCREMENT 1 -MINVALUE 1 -MAXVALUE 9223372036854775807 -START 1 -CACHE 1; -ALTER SEQUENCE "augur_data"."issue_assignees_issue_assignee_id_seq" OWNER TO "augur"; - --- ---------------------------- --- Sequence structure for issue_events_event_id_seq --- ---------------------------- -DROP SEQUENCE IF EXISTS "augur_data"."issue_events_event_id_seq"; -CREATE SEQUENCE "augur_data"."issue_events_event_id_seq" -INCREMENT 1 -MINVALUE 1 -MAXVALUE 9223372036854775807 -START 25430 -CACHE 1; -ALTER SEQUENCE "augur_data"."issue_events_event_id_seq" OWNER TO "augur"; - --- ---------------------------- --- Sequence structure for issue_labels_issue_label_id_seq --- ---------------------------- -DROP SEQUENCE IF EXISTS "augur_data"."issue_labels_issue_label_id_seq"; -CREATE SEQUENCE "augur_data"."issue_labels_issue_label_id_seq" -INCREMENT 1 -MINVALUE 1 -MAXVALUE 9223372036854775807 -START 25430 -CACHE 1; -ALTER SEQUENCE "augur_data"."issue_labels_issue_label_id_seq" OWNER TO "augur"; - --- ---------------------------- --- Sequence structure for issue_message_ref_issue_msg_ref_id_seq --- ---------------------------- -DROP SEQUENCE IF EXISTS "augur_data"."issue_message_ref_issue_msg_ref_id_seq"; -CREATE SEQUENCE "augur_data"."issue_message_ref_issue_msg_ref_id_seq" -INCREMENT 1 -MINVALUE 1 -MAXVALUE 9223372036854775807 -START 25430 -CACHE 1; -ALTER SEQUENCE "augur_data"."issue_message_ref_issue_msg_ref_id_seq" OWNER TO "augur"; - --- ---------------------------- --- Sequence structure for issue_seq --- ---------------------------- -DROP SEQUENCE IF EXISTS "augur_data"."issue_seq"; -CREATE SEQUENCE "augur_data"."issue_seq" -INCREMENT 1 -MINVALUE 1 -MAXVALUE 9223372036854775807 -START 31000 -CACHE 1; -ALTER SEQUENCE "augur_data"."issue_seq" OWNER TO "augur"; - --- ---------------------------- --- Sequence structure for libraries_library_id_seq --- ---------------------------- -DROP SEQUENCE IF EXISTS "augur_data"."libraries_library_id_seq"; -CREATE SEQUENCE "augur_data"."libraries_library_id_seq" -INCREMENT 1 -MINVALUE 1 -MAXVALUE 9223372036854775807 -START 25430 -CACHE 1; -ALTER SEQUENCE "augur_data"."libraries_library_id_seq" OWNER TO "augur"; - --- ---------------------------- --- Sequence structure for library_dependencies_lib_dependency_id_seq --- ---------------------------- -DROP SEQUENCE IF EXISTS "augur_data"."library_dependencies_lib_dependency_id_seq"; -CREATE SEQUENCE "augur_data"."library_dependencies_lib_dependency_id_seq" -INCREMENT 1 -MINVALUE 1 -MAXVALUE 9223372036854775807 -START 25430 -CACHE 1; -ALTER SEQUENCE "augur_data"."library_dependencies_lib_dependency_id_seq" OWNER TO "augur"; - --- ---------------------------- --- Sequence structure for library_version_library_version_id_seq --- ---------------------------- -DROP SEQUENCE IF EXISTS "augur_data"."library_version_library_version_id_seq"; -CREATE SEQUENCE "augur_data"."library_version_library_version_id_seq" -INCREMENT 1 -MINVALUE 1 -MAXVALUE 9223372036854775807 -START 25430 -CACHE 1; -ALTER SEQUENCE "augur_data"."library_version_library_version_id_seq" OWNER TO "augur"; - --- ---------------------------- --- Sequence structure for lstm_anomaly_models_model_id_seq --- ---------------------------- -DROP SEQUENCE IF EXISTS "augur_data"."lstm_anomaly_models_model_id_seq"; -CREATE SEQUENCE "augur_data"."lstm_anomaly_models_model_id_seq" -INCREMENT 1 -MINVALUE 1 -MAXVALUE 9223372036854775807 -START 1 -CACHE 1; -ALTER SEQUENCE "augur_data"."lstm_anomaly_models_model_id_seq" OWNER TO "augur"; - --- ---------------------------- --- Sequence structure for lstm_anomaly_results_result_id_seq --- ---------------------------- -DROP SEQUENCE IF EXISTS "augur_data"."lstm_anomaly_results_result_id_seq"; -CREATE SEQUENCE "augur_data"."lstm_anomaly_results_result_id_seq" -INCREMENT 1 -MINVALUE 1 -MAXVALUE 9223372036854775807 -START 1 -CACHE 1; -ALTER SEQUENCE "augur_data"."lstm_anomaly_results_result_id_seq" OWNER TO "augur"; - --- ---------------------------- --- Sequence structure for message_analysis_msg_analysis_id_seq --- ---------------------------- -DROP SEQUENCE IF EXISTS "augur_data"."message_analysis_msg_analysis_id_seq"; -CREATE SEQUENCE "augur_data"."message_analysis_msg_analysis_id_seq" -INCREMENT 1 -MINVALUE 1 -MAXVALUE 9223372036854775807 -START 1 -CACHE 1; -ALTER SEQUENCE "augur_data"."message_analysis_msg_analysis_id_seq" OWNER TO "augur"; - --- ---------------------------- --- Sequence structure for message_analysis_summary_msg_summary_id_seq --- ---------------------------- -DROP SEQUENCE IF EXISTS "augur_data"."message_analysis_summary_msg_summary_id_seq"; -CREATE SEQUENCE "augur_data"."message_analysis_summary_msg_summary_id_seq" -INCREMENT 1 -MINVALUE 1 -MAXVALUE 9223372036854775807 -START 1 -CACHE 1; -ALTER SEQUENCE "augur_data"."message_analysis_summary_msg_summary_id_seq" OWNER TO "augur"; - --- ---------------------------- --- Sequence structure for message_msg_id_seq --- ---------------------------- -DROP SEQUENCE IF EXISTS "augur_data"."message_msg_id_seq"; -CREATE SEQUENCE "augur_data"."message_msg_id_seq" -INCREMENT 1 -MINVALUE 1 -MAXVALUE 9223372036854775807 -START 25430 -CACHE 1; -ALTER SEQUENCE "augur_data"."message_msg_id_seq" OWNER TO "augur"; - --- ---------------------------- --- Sequence structure for message_sentiment_msg_analysis_id_seq --- ---------------------------- -DROP SEQUENCE IF EXISTS "augur_data"."message_sentiment_msg_analysis_id_seq"; -CREATE SEQUENCE "augur_data"."message_sentiment_msg_analysis_id_seq" -INCREMENT 1 -MINVALUE 1 -MAXVALUE 9223372036854775807 -START 1 -CACHE 1; -ALTER SEQUENCE "augur_data"."message_sentiment_msg_analysis_id_seq" OWNER TO "augur"; - --- ---------------------------- --- Sequence structure for message_sentiment_summary_msg_summary_id_seq --- ---------------------------- -DROP SEQUENCE IF EXISTS "augur_data"."message_sentiment_summary_msg_summary_id_seq"; -CREATE SEQUENCE "augur_data"."message_sentiment_summary_msg_summary_id_seq" -INCREMENT 1 -MINVALUE 1 -MAXVALUE 9223372036854775807 -START 1 -CACHE 1; -ALTER SEQUENCE "augur_data"."message_sentiment_summary_msg_summary_id_seq" OWNER TO "augur"; - --- ---------------------------- --- Sequence structure for platform_pltfrm_id_seq --- ---------------------------- -DROP SEQUENCE IF EXISTS "augur_data"."platform_pltfrm_id_seq"; -CREATE SEQUENCE "augur_data"."platform_pltfrm_id_seq" -INCREMENT 1 -MINVALUE 1 -MAXVALUE 9223372036854775807 -START 25430 -CACHE 1; -ALTER SEQUENCE "augur_data"."platform_pltfrm_id_seq" OWNER TO "augur"; - --- ---------------------------- --- Sequence structure for pull_request_assignees_pr_assignee_map_id_seq --- ---------------------------- -DROP SEQUENCE IF EXISTS "augur_data"."pull_request_assignees_pr_assignee_map_id_seq"; -CREATE SEQUENCE "augur_data"."pull_request_assignees_pr_assignee_map_id_seq" -INCREMENT 1 -MINVALUE 1 -MAXVALUE 9223372036854775807 -START 25430 -CACHE 1; -ALTER SEQUENCE "augur_data"."pull_request_assignees_pr_assignee_map_id_seq" OWNER TO "augur"; - --- ---------------------------- --- Sequence structure for pull_request_commits_pr_cmt_id_seq --- ---------------------------- -DROP SEQUENCE IF EXISTS "augur_data"."pull_request_commits_pr_cmt_id_seq"; -CREATE SEQUENCE "augur_data"."pull_request_commits_pr_cmt_id_seq" -INCREMENT 1 -MINVALUE 1 -MAXVALUE 9223372036854775807 -START 1 -CACHE 1; -ALTER SEQUENCE "augur_data"."pull_request_commits_pr_cmt_id_seq" OWNER TO "augur"; - --- ---------------------------- --- Sequence structure for pull_request_events_pr_event_id_seq --- ---------------------------- -DROP SEQUENCE IF EXISTS "augur_data"."pull_request_events_pr_event_id_seq"; -CREATE SEQUENCE "augur_data"."pull_request_events_pr_event_id_seq" -INCREMENT 1 -MINVALUE 1 -MAXVALUE 9223372036854775807 -START 25430 -CACHE 1; -ALTER SEQUENCE "augur_data"."pull_request_events_pr_event_id_seq" OWNER TO "augur"; - --- ---------------------------- --- Sequence structure for pull_request_files_pr_file_id_seq --- ---------------------------- -DROP SEQUENCE IF EXISTS "augur_data"."pull_request_files_pr_file_id_seq"; -CREATE SEQUENCE "augur_data"."pull_request_files_pr_file_id_seq" -INCREMENT 1 -MINVALUE 1 -MAXVALUE 9223372036854775807 -START 25150 -CACHE 1; -ALTER SEQUENCE "augur_data"."pull_request_files_pr_file_id_seq" OWNER TO "augur"; - --- ---------------------------- --- Sequence structure for pull_request_labels_pr_label_id_seq --- ---------------------------- -DROP SEQUENCE IF EXISTS "augur_data"."pull_request_labels_pr_label_id_seq"; -CREATE SEQUENCE "augur_data"."pull_request_labels_pr_label_id_seq" -INCREMENT 1 -MINVALUE 1 -MAXVALUE 9223372036854775807 -START 25430 -CACHE 1; -ALTER SEQUENCE "augur_data"."pull_request_labels_pr_label_id_seq" OWNER TO "augur"; - --- ---------------------------- --- Sequence structure for pull_request_message_ref_pr_msg_ref_id_seq --- ---------------------------- -DROP SEQUENCE IF EXISTS "augur_data"."pull_request_message_ref_pr_msg_ref_id_seq"; -CREATE SEQUENCE "augur_data"."pull_request_message_ref_pr_msg_ref_id_seq" -INCREMENT 1 -MINVALUE 1 -MAXVALUE 9223372036854775807 -START 25430 -CACHE 1; -ALTER SEQUENCE "augur_data"."pull_request_message_ref_pr_msg_ref_id_seq" OWNER TO "augur"; - --- ---------------------------- --- Sequence structure for pull_request_meta_pr_repo_meta_id_seq --- ---------------------------- -DROP SEQUENCE IF EXISTS "augur_data"."pull_request_meta_pr_repo_meta_id_seq"; -CREATE SEQUENCE "augur_data"."pull_request_meta_pr_repo_meta_id_seq" -INCREMENT 1 -MINVALUE 1 -MAXVALUE 9223372036854775807 -START 25430 -CACHE 1; -ALTER SEQUENCE "augur_data"."pull_request_meta_pr_repo_meta_id_seq" OWNER TO "augur"; - --- ---------------------------- --- Sequence structure for pull_request_repo_pr_repo_id_seq --- ---------------------------- -DROP SEQUENCE IF EXISTS "augur_data"."pull_request_repo_pr_repo_id_seq"; -CREATE SEQUENCE "augur_data"."pull_request_repo_pr_repo_id_seq" -INCREMENT 1 -MINVALUE 1 -MAXVALUE 9223372036854775807 -START 25430 -CACHE 1; -ALTER SEQUENCE "augur_data"."pull_request_repo_pr_repo_id_seq" OWNER TO "augur"; - --- ---------------------------- --- Sequence structure for pull_request_reviewers_pr_reviewer_map_id_seq --- ---------------------------- -DROP SEQUENCE IF EXISTS "augur_data"."pull_request_reviewers_pr_reviewer_map_id_seq"; -CREATE SEQUENCE "augur_data"."pull_request_reviewers_pr_reviewer_map_id_seq" -INCREMENT 1 -MINVALUE 1 -MAXVALUE 9223372036854775807 -START 25430 -CACHE 1; -ALTER SEQUENCE "augur_data"."pull_request_reviewers_pr_reviewer_map_id_seq" OWNER TO "augur"; - --- ---------------------------- --- Sequence structure for pull_request_teams_pr_team_id_seq --- ---------------------------- -DROP SEQUENCE IF EXISTS "augur_data"."pull_request_teams_pr_team_id_seq"; -CREATE SEQUENCE "augur_data"."pull_request_teams_pr_team_id_seq" -INCREMENT 1 -MINVALUE 1 -MAXVALUE 9223372036854775807 -START 25430 -CACHE 1; -ALTER SEQUENCE "augur_data"."pull_request_teams_pr_team_id_seq" OWNER TO "augur"; - --- ---------------------------- --- Sequence structure for pull_requests_pull_request_id_seq --- ---------------------------- -DROP SEQUENCE IF EXISTS "augur_data"."pull_requests_pull_request_id_seq"; -CREATE SEQUENCE "augur_data"."pull_requests_pull_request_id_seq" -INCREMENT 1 -MINVALUE 1 -MAXVALUE 9223372036854775807 -START 25430 -CACHE 1; -ALTER SEQUENCE "augur_data"."pull_requests_pull_request_id_seq" OWNER TO "augur"; - --- ---------------------------- --- Sequence structure for releases_release_id_seq --- ---------------------------- -DROP SEQUENCE IF EXISTS "augur_data"."releases_release_id_seq"; -CREATE SEQUENCE "augur_data"."releases_release_id_seq" -INCREMENT 1 -MINVALUE 1 -MAXVALUE 9223372036854775807 -START 1 -CACHE 1; -ALTER SEQUENCE "augur_data"."releases_release_id_seq" OWNER TO "augur"; - --- ---------------------------- --- Sequence structure for repo_badging_badge_collection_id_seq --- ---------------------------- -DROP SEQUENCE IF EXISTS "augur_data"."repo_badging_badge_collection_id_seq"; -CREATE SEQUENCE "augur_data"."repo_badging_badge_collection_id_seq" -INCREMENT 1 -MINVALUE 1 -MAXVALUE 9223372036854775807 -START 25012 -CACHE 1; -ALTER SEQUENCE "augur_data"."repo_badging_badge_collection_id_seq" OWNER TO "augur"; - --- ---------------------------- --- Sequence structure for repo_cluster_messages_msg_cluster_id_seq --- ---------------------------- -DROP SEQUENCE IF EXISTS "augur_data"."repo_cluster_messages_msg_cluster_id_seq"; -CREATE SEQUENCE "augur_data"."repo_cluster_messages_msg_cluster_id_seq" -INCREMENT 1 -MINVALUE 1 -MAXVALUE 9223372036854775807 -START 1 -CACHE 1; -ALTER SEQUENCE "augur_data"."repo_cluster_messages_msg_cluster_id_seq" OWNER TO "augur"; - --- ---------------------------- --- Sequence structure for repo_group_insights_rgi_id_seq --- ---------------------------- -DROP SEQUENCE IF EXISTS "augur_data"."repo_group_insights_rgi_id_seq"; -CREATE SEQUENCE "augur_data"."repo_group_insights_rgi_id_seq" -INCREMENT 1 -MINVALUE 1 -MAXVALUE 9223372036854775807 -START 25430 -CACHE 1; -ALTER SEQUENCE "augur_data"."repo_group_insights_rgi_id_seq" OWNER TO "augur"; - --- ---------------------------- --- Sequence structure for repo_groups_list_serve_rgls_id_seq --- ---------------------------- -DROP SEQUENCE IF EXISTS "augur_data"."repo_groups_list_serve_rgls_id_seq"; -CREATE SEQUENCE "augur_data"."repo_groups_list_serve_rgls_id_seq" -INCREMENT 1 -MINVALUE 1 -MAXVALUE 9223372036854775807 -START 25430 -CACHE 1; -ALTER SEQUENCE "augur_data"."repo_groups_list_serve_rgls_id_seq" OWNER TO "augur"; - --- ---------------------------- --- Sequence structure for repo_groups_repo_group_id_seq --- ---------------------------- -DROP SEQUENCE IF EXISTS "augur_data"."repo_groups_repo_group_id_seq"; -CREATE SEQUENCE "augur_data"."repo_groups_repo_group_id_seq" -INCREMENT 1 -MINVALUE 1 -MAXVALUE 9223372036854775807 -START 25430 -CACHE 1; -ALTER SEQUENCE "augur_data"."repo_groups_repo_group_id_seq" OWNER TO "augur"; - --- ---------------------------- --- Sequence structure for repo_info_repo_info_id_seq --- ---------------------------- -DROP SEQUENCE IF EXISTS "augur_data"."repo_info_repo_info_id_seq"; -CREATE SEQUENCE "augur_data"."repo_info_repo_info_id_seq" -INCREMENT 1 -MINVALUE 1 -MAXVALUE 9223372036854775807 -START 25430 -CACHE 1; -ALTER SEQUENCE "augur_data"."repo_info_repo_info_id_seq" OWNER TO "augur"; - --- ---------------------------- --- Sequence structure for repo_insights_records_ri_id_seq --- ---------------------------- -DROP SEQUENCE IF EXISTS "augur_data"."repo_insights_records_ri_id_seq"; -CREATE SEQUENCE "augur_data"."repo_insights_records_ri_id_seq" -INCREMENT 1 -MINVALUE 1 -MAXVALUE 9223372036854775807 -START 1 -CACHE 1; -ALTER SEQUENCE "augur_data"."repo_insights_records_ri_id_seq" OWNER TO "augur"; - --- ---------------------------- --- Sequence structure for repo_insights_ri_id_seq --- ---------------------------- -DROP SEQUENCE IF EXISTS "augur_data"."repo_insights_ri_id_seq"; -CREATE SEQUENCE "augur_data"."repo_insights_ri_id_seq" -INCREMENT 1 -MINVALUE 1 -MAXVALUE 9223372036854775807 -START 1 -CACHE 1; -ALTER SEQUENCE "augur_data"."repo_insights_ri_id_seq" OWNER TO "augur"; - --- ---------------------------- --- Sequence structure for repo_labor_repo_labor_id_seq --- ---------------------------- -DROP SEQUENCE IF EXISTS "augur_data"."repo_labor_repo_labor_id_seq"; -CREATE SEQUENCE "augur_data"."repo_labor_repo_labor_id_seq" -INCREMENT 1 -MINVALUE 1 -MAXVALUE 9223372036854775807 -START 25430 -CACHE 1; -ALTER SEQUENCE "augur_data"."repo_labor_repo_labor_id_seq" OWNER TO "augur"; - --- ---------------------------- --- Sequence structure for repo_meta_rmeta_id_seq --- ---------------------------- -DROP SEQUENCE IF EXISTS "augur_data"."repo_meta_rmeta_id_seq"; -CREATE SEQUENCE "augur_data"."repo_meta_rmeta_id_seq" -INCREMENT 1 -MINVALUE 1 -MAXVALUE 9223372036854775807 -START 25430 -CACHE 1; -ALTER SEQUENCE "augur_data"."repo_meta_rmeta_id_seq" OWNER TO "augur"; - --- ---------------------------- --- Sequence structure for repo_repo_id_seq --- ---------------------------- -DROP SEQUENCE IF EXISTS "augur_data"."repo_repo_id_seq"; -CREATE SEQUENCE "augur_data"."repo_repo_id_seq" -INCREMENT 1 -MINVALUE 1 -MAXVALUE 9223372036854775807 -START 25430 -CACHE 1; -ALTER SEQUENCE "augur_data"."repo_repo_id_seq" OWNER TO "augur"; - --- ---------------------------- --- Sequence structure for repo_sbom_scans_rsb_id_seq --- ---------------------------- -DROP SEQUENCE IF EXISTS "augur_data"."repo_sbom_scans_rsb_id_seq"; -CREATE SEQUENCE "augur_data"."repo_sbom_scans_rsb_id_seq" -INCREMENT 1 -MINVALUE 1 -MAXVALUE 9223372036854775807 -START 25430 -CACHE 1; -ALTER SEQUENCE "augur_data"."repo_sbom_scans_rsb_id_seq" OWNER TO "augur"; - --- ---------------------------- --- Sequence structure for repo_stats_rstat_id_seq --- ---------------------------- -DROP SEQUENCE IF EXISTS "augur_data"."repo_stats_rstat_id_seq"; -CREATE SEQUENCE "augur_data"."repo_stats_rstat_id_seq" -INCREMENT 1 -MINVALUE 1 -MAXVALUE 9223372036854775807 -START 25430 -CACHE 1; -ALTER SEQUENCE "augur_data"."repo_stats_rstat_id_seq" OWNER TO "augur"; - --- ---------------------------- --- Sequence structure for repo_test_coverage_repo_id_seq --- ---------------------------- -DROP SEQUENCE IF EXISTS "augur_data"."repo_test_coverage_repo_id_seq"; -CREATE SEQUENCE "augur_data"."repo_test_coverage_repo_id_seq" -INCREMENT 1 -MINVALUE 1 -MAXVALUE 9223372036854775807 -START 1 -CACHE 1; -ALTER SEQUENCE "augur_data"."repo_test_coverage_repo_id_seq" OWNER TO "augur"; - --- ---------------------------- --- Sequence structure for repo_topic_repo_topic_id_seq --- ---------------------------- -DROP SEQUENCE IF EXISTS "augur_data"."repo_topic_repo_topic_id_seq"; -CREATE SEQUENCE "augur_data"."repo_topic_repo_topic_id_seq" -INCREMENT 1 -MINVALUE 1 -MAXVALUE 9223372036854775807 -START 1 -CACHE 1; -ALTER SEQUENCE "augur_data"."repo_topic_repo_topic_id_seq" OWNER TO "augur"; - --- ---------------------------- --- Sequence structure for topic_words_topic_words_id_seq --- ---------------------------- -DROP SEQUENCE IF EXISTS "augur_data"."topic_words_topic_words_id_seq"; -CREATE SEQUENCE "augur_data"."topic_words_topic_words_id_seq" -INCREMENT 1 -MINVALUE 1 -MAXVALUE 9223372036854775807 -START 1 -CACHE 1; -ALTER SEQUENCE "augur_data"."topic_words_topic_words_id_seq" OWNER TO "augur"; - --- ---------------------------- --- Sequence structure for utility_log_id_seq --- ---------------------------- -DROP SEQUENCE IF EXISTS "augur_data"."utility_log_id_seq"; -CREATE SEQUENCE "augur_data"."utility_log_id_seq" -INCREMENT 1 -MINVALUE 1 -MAXVALUE 9223372036854775807 -START 1 -CACHE 1; -ALTER SEQUENCE "augur_data"."utility_log_id_seq" OWNER TO "augur"; - --- ---------------------------- --- Sequence structure for utility_log_id_seq1 --- ---------------------------- -DROP SEQUENCE IF EXISTS "augur_data"."utility_log_id_seq1"; -CREATE SEQUENCE "augur_data"."utility_log_id_seq1" -INCREMENT 1 -MINVALUE 1 -MAXVALUE 9223372036854775807 -START 1 -CACHE 1; -ALTER SEQUENCE "augur_data"."utility_log_id_seq1" OWNER TO "augur"; - --- ---------------------------- - -ALTER TABLE IF EXISTS "augur_data"."commit_comment_ref" DROP CONSTRAINT "fk_commit_comment_ref_commits_1" CASCADE; -ALTER TABLE IF EXISTS "augur_data"."commit_comment_ref" DROP CONSTRAINT "fk_commit_comment_ref_message_1" CASCADE; -ALTER TABLE IF EXISTS "augur_data"."commit_parents" DROP CONSTRAINT "fk_commit_parents_commits_1" CASCADE; -ALTER TABLE IF EXISTS "augur_data"."commit_parents" DROP CONSTRAINT "fk_commit_parents_commits_2" CASCADE; -ALTER TABLE IF EXISTS "augur_data"."commits" DROP CONSTRAINT "fk_commits_contributors_1" CASCADE; -ALTER TABLE IF EXISTS "augur_data"."commits" DROP CONSTRAINT "fk_commits_contributors_2" CASCADE; -ALTER TABLE IF EXISTS "augur_data"."commits" DROP CONSTRAINT "fk_commits_repo_1" CASCADE; -ALTER TABLE IF EXISTS "augur_data"."contributors_aliases" DROP CONSTRAINT "fk_contributors_aliases_contributors_1" CASCADE; -ALTER TABLE IF EXISTS "augur_data"."contributors_history" DROP CONSTRAINT "fk_contributors_history_contributors_1" CASCADE; -ALTER TABLE IF EXISTS "augur_data"."discourse_insights" DROP CONSTRAINT "fk_discourse_insights_message_1" CASCADE; -ALTER TABLE IF EXISTS "augur_data"."issue_assignees" DROP CONSTRAINT "fk_issue_assignees_contributors_1" CASCADE; -ALTER TABLE IF EXISTS "augur_data"."issue_assignees" DROP CONSTRAINT "fk_issue_assignees_issues_1" CASCADE; -ALTER TABLE IF EXISTS "augur_data"."issue_events" DROP CONSTRAINT "fk_issue_events_contributors_1" CASCADE; -ALTER TABLE IF EXISTS "augur_data"."issue_events" DROP CONSTRAINT "fk_issue_events_issues_1" CASCADE; -ALTER TABLE IF EXISTS "augur_data"."issue_labels" DROP CONSTRAINT "fk_issue_labels_issues_1" CASCADE; -ALTER TABLE IF EXISTS "augur_data"."issue_message_ref" DROP CONSTRAINT "fk_issue_message_ref_issues_1" CASCADE; -ALTER TABLE IF EXISTS "augur_data"."issue_message_ref" DROP CONSTRAINT "fk_issue_message_ref_message_1" CASCADE; -ALTER TABLE IF EXISTS "augur_data"."issues" DROP CONSTRAINT "fk_issues_contributors_1" CASCADE; -ALTER TABLE IF EXISTS "augur_data"."issues" DROP CONSTRAINT "fk_issues_contributors_2" CASCADE; -ALTER TABLE IF EXISTS "augur_data"."issues" DROP CONSTRAINT "fk_issues_repo" CASCADE; -ALTER TABLE IF EXISTS "augur_data"."libraries" DROP CONSTRAINT "fk_libraries_repo_1" CASCADE; -ALTER TABLE IF EXISTS "augur_data"."library_dependencies" DROP CONSTRAINT "fk_library_dependencies_libraries_1" CASCADE; -ALTER TABLE IF EXISTS "augur_data"."library_version" DROP CONSTRAINT "fk_library_version_libraries_1" CASCADE; -ALTER TABLE IF EXISTS "augur_data"."lstm_anomaly_results" DROP CONSTRAINT "fk_lstm_anomaly_results_lstm_anomaly_models_1" CASCADE; -ALTER TABLE IF EXISTS "augur_data"."lstm_anomaly_results" DROP CONSTRAINT "fk_lstm_anomaly_results_repo_1" CASCADE; -ALTER TABLE IF EXISTS "augur_data"."message" DROP CONSTRAINT "fk_message_contributors_1" CASCADE; -ALTER TABLE IF EXISTS "augur_data"."message" DROP CONSTRAINT "fk_message_platform_1" CASCADE; -ALTER TABLE IF EXISTS "augur_data"."message" DROP CONSTRAINT "fk_message_repo_groups_list_serve_1" CASCADE; -ALTER TABLE IF EXISTS "augur_data"."message_analysis" DROP CONSTRAINT "fk_message_analysis_message_1" CASCADE; -ALTER TABLE IF EXISTS "augur_data"."message_analysis_summary" DROP CONSTRAINT "fk_message_analysis_summary_repo_1" CASCADE; -ALTER TABLE IF EXISTS "augur_data"."message_sentiment" DROP CONSTRAINT "fk_message_sentiment_message_1" CASCADE; -ALTER TABLE IF EXISTS "augur_data"."message_sentiment_summary" DROP CONSTRAINT "fk_message_sentiment_summary_repo_1" CASCADE; -ALTER TABLE IF EXISTS "augur_data"."pull_request_assignees" DROP CONSTRAINT "fk_pull_request_assignees_contributors_1" CASCADE; -ALTER TABLE IF EXISTS "augur_data"."pull_request_assignees" DROP CONSTRAINT "fk_pull_request_assignees_pull_requests_1" CASCADE; -ALTER TABLE IF EXISTS "augur_data"."pull_request_commits" DROP CONSTRAINT "fk_pull_request_commits_pull_requests_1" CASCADE; -ALTER TABLE IF EXISTS "augur_data"."pull_request_events" DROP CONSTRAINT "fk_pull_request_events_contributors_1" CASCADE; -ALTER TABLE IF EXISTS "augur_data"."pull_request_events" DROP CONSTRAINT "fk_pull_request_events_pull_requests_1" CASCADE; -ALTER TABLE IF EXISTS "augur_data"."pull_request_files" DROP CONSTRAINT "fk_pull_request_commits_pull_requests_1" CASCADE; -ALTER TABLE IF EXISTS "augur_data"."pull_request_labels" DROP CONSTRAINT "fk_pull_request_labels_pull_requests_1" CASCADE; -ALTER TABLE IF EXISTS "augur_data"."pull_request_message_ref" DROP CONSTRAINT "fk_pull_request_message_ref_message_1" CASCADE; -ALTER TABLE IF EXISTS "augur_data"."pull_request_message_ref" DROP CONSTRAINT "fk_pull_request_message_ref_pull_requests_1" CASCADE; -ALTER TABLE IF EXISTS "augur_data"."pull_request_meta" DROP CONSTRAINT "fk_pull_request_meta_contributors_2" CASCADE; -ALTER TABLE IF EXISTS "augur_data"."pull_request_meta" DROP CONSTRAINT "fk_pull_request_meta_pull_requests_1" CASCADE; -ALTER TABLE IF EXISTS "augur_data"."pull_request_repo" DROP CONSTRAINT "fk_pull_request_repo_contributors_1" CASCADE; -ALTER TABLE IF EXISTS "augur_data"."pull_request_repo" DROP CONSTRAINT "fk_pull_request_repo_pull_request_meta_1" CASCADE; -ALTER TABLE IF EXISTS "augur_data"."pull_request_reviewers" DROP CONSTRAINT "fk_pull_request_reviewers_contributors_1" CASCADE; -ALTER TABLE IF EXISTS "augur_data"."pull_request_reviewers" DROP CONSTRAINT "fk_pull_request_reviewers_pull_requests_1" CASCADE; -ALTER TABLE IF EXISTS "augur_data"."pull_request_teams" DROP CONSTRAINT "fk_pull_request_teams_pull_requests_1" CASCADE; -ALTER TABLE IF EXISTS "augur_data"."pull_requests" DROP CONSTRAINT "fk_pull_requests_pull_request_meta_1" CASCADE; -ALTER TABLE IF EXISTS "augur_data"."pull_requests" DROP CONSTRAINT "fk_pull_requests_pull_request_meta_2" CASCADE; -ALTER TABLE IF EXISTS "augur_data"."pull_requests" DROP CONSTRAINT "fk_pull_requests_repo_1" CASCADE; -ALTER TABLE IF EXISTS "augur_data"."releases" DROP CONSTRAINT "fk_releases_repo_1" CASCADE; -ALTER TABLE IF EXISTS "augur_data"."repo" DROP CONSTRAINT "fk_repo_repo_groups_1" CASCADE; -ALTER TABLE IF EXISTS "augur_data"."repo_badging" DROP CONSTRAINT "fk_repo_badging_repo_1" CASCADE; -ALTER TABLE IF EXISTS "augur_data"."repo_cluster_messages" DROP CONSTRAINT "fk_repo_cluster_messages_repo_1" CASCADE; -ALTER TABLE IF EXISTS "augur_data"."repo_group_insights" DROP CONSTRAINT "fk_repo_group_insights_repo_groups_1" CASCADE; -ALTER TABLE IF EXISTS "augur_data"."repo_groups_list_serve" DROP CONSTRAINT "fk_repo_groups_list_serve_repo_groups_1" CASCADE; -ALTER TABLE IF EXISTS "augur_data"."repo_info" DROP CONSTRAINT "fk_repo_info_repo_1" CASCADE; -ALTER TABLE IF EXISTS "augur_data"."repo_insights" DROP CONSTRAINT "fk_repo_insights_repo_1" CASCADE; -ALTER TABLE IF EXISTS "augur_data"."repo_insights_records" DROP CONSTRAINT "repo_id_ref" CASCADE; -ALTER TABLE IF EXISTS "augur_data"."repo_labor" DROP CONSTRAINT "fk_repo_labor_repo_1" CASCADE; -ALTER TABLE IF EXISTS "augur_data"."repo_meta" DROP CONSTRAINT "fk_repo_meta_repo_1" CASCADE; -ALTER TABLE IF EXISTS "augur_data"."repo_sbom_scans" DROP CONSTRAINT "repo_linker_sbom" CASCADE; -ALTER TABLE IF EXISTS "augur_data"."repo_stats" DROP CONSTRAINT "fk_repo_stats_repo_1" CASCADE; -ALTER TABLE IF EXISTS "augur_data"."repo_test_coverage" DROP CONSTRAINT "fk_repo_test_coverage_repo_1" CASCADE; -ALTER TABLE IF EXISTS "augur_data"."repo_topic" DROP CONSTRAINT "fk_repo_topic_repo_1" CASCADE; -ALTER TABLE IF EXISTS "augur_data"."topic_words" DROP CONSTRAINT "fk_topic_words_repo_topic_1" CASCADE; -ALTER TABLE IF EXISTS "spdx"."annotations" DROP CONSTRAINT "annotations_annotation_type_id_fkey" CASCADE; -ALTER TABLE IF EXISTS "spdx"."annotations" DROP CONSTRAINT "annotations_creator_id_fkey" CASCADE; -ALTER TABLE IF EXISTS "spdx"."annotations" DROP CONSTRAINT "annotations_document_id_fkey" CASCADE; -ALTER TABLE IF EXISTS "spdx"."annotations" DROP CONSTRAINT "annotations_identifier_id_fkey" CASCADE; -ALTER TABLE IF EXISTS "spdx"."creators" DROP CONSTRAINT "creators_creator_type_id_fkey" CASCADE; -ALTER TABLE IF EXISTS "spdx"."documents" DROP CONSTRAINT "documents_data_license_id_fkey" CASCADE; -ALTER TABLE IF EXISTS "spdx"."documents" DROP CONSTRAINT "documents_document_namespace_id_fkey" CASCADE; -ALTER TABLE IF EXISTS "spdx"."documents" DROP CONSTRAINT "documents_package_id_fkey" CASCADE; -ALTER TABLE IF EXISTS "spdx"."documents_creators" DROP CONSTRAINT "documents_creators_creator_id_fkey" CASCADE; -ALTER TABLE IF EXISTS "spdx"."documents_creators" DROP CONSTRAINT "documents_creators_document_id_fkey" CASCADE; -ALTER TABLE IF EXISTS "spdx"."external_refs" DROP CONSTRAINT "external_refs_document_id_fkey" CASCADE; -ALTER TABLE IF EXISTS "spdx"."external_refs" DROP CONSTRAINT "external_refs_document_namespace_id_fkey" CASCADE; -ALTER TABLE IF EXISTS "spdx"."file_contributors" DROP CONSTRAINT "file_contributors_file_id_fkey" CASCADE; -ALTER TABLE IF EXISTS "spdx"."files_licenses" DROP CONSTRAINT "files_licenses_file_id_fkey" CASCADE; -ALTER TABLE IF EXISTS "spdx"."files_licenses" DROP CONSTRAINT "files_licenses_license_id_fkey" CASCADE; -ALTER TABLE IF EXISTS "spdx"."files_scans" DROP CONSTRAINT "files_scans_file_id_fkey" CASCADE; -ALTER TABLE IF EXISTS "spdx"."files_scans" DROP CONSTRAINT "files_scans_scanner_id_fkey" CASCADE; -ALTER TABLE IF EXISTS "spdx"."identifiers" DROP CONSTRAINT "identifiers_document_id_fkey" CASCADE; -ALTER TABLE IF EXISTS "spdx"."identifiers" DROP CONSTRAINT "identifiers_document_namespace_id_fkey" CASCADE; -ALTER TABLE IF EXISTS "spdx"."identifiers" DROP CONSTRAINT "identifiers_package_file_id_fkey" CASCADE; -ALTER TABLE IF EXISTS "spdx"."identifiers" DROP CONSTRAINT "identifiers_package_id_fkey" CASCADE; -ALTER TABLE IF EXISTS "spdx"."packages" DROP CONSTRAINT "fk_package_packages_files" CASCADE; -ALTER TABLE IF EXISTS "spdx"."packages" DROP CONSTRAINT "packages_concluded_license_id_fkey" CASCADE; -ALTER TABLE IF EXISTS "spdx"."packages" DROP CONSTRAINT "packages_declared_license_id_fkey" CASCADE; -ALTER TABLE IF EXISTS "spdx"."packages" DROP CONSTRAINT "packages_originator_id_fkey" CASCADE; -ALTER TABLE IF EXISTS "spdx"."packages" DROP CONSTRAINT "packages_supplier_id_fkey" CASCADE; -ALTER TABLE IF EXISTS "spdx"."packages_files" DROP CONSTRAINT "fk_package_files_packages" CASCADE; -ALTER TABLE IF EXISTS "spdx"."packages_files" DROP CONSTRAINT "packages_files_concluded_license_id_fkey" CASCADE; -ALTER TABLE IF EXISTS "spdx"."packages_files" DROP CONSTRAINT "packages_files_file_id_fkey" CASCADE; -ALTER TABLE IF EXISTS "spdx"."packages_scans" DROP CONSTRAINT "packages_scans_package_id_fkey" CASCADE; -ALTER TABLE IF EXISTS "spdx"."packages_scans" DROP CONSTRAINT "packages_scans_scanner_id_fkey" CASCADE; -ALTER TABLE IF EXISTS "spdx"."relationships" DROP CONSTRAINT "relationships_left_identifier_id_fkey" CASCADE; -ALTER TABLE IF EXISTS "spdx"."relationships" DROP CONSTRAINT "relationships_relationship_type_id_fkey" CASCADE; -ALTER TABLE IF EXISTS "spdx"."relationships" DROP CONSTRAINT "relationships_right_identifier_id_fkey" CASCADE; - -DROP INDEX IF EXISTS "augur_data"."repos_id" CASCADE; -DROP INDEX IF EXISTS "augur_data"."comment_id" CASCADE; -DROP INDEX IF EXISTS "augur_data"."commit_parents_ibfk_1" CASCADE; -DROP INDEX IF EXISTS "augur_data"."commit_parents_ibfk_2" CASCADE; -DROP INDEX IF EXISTS "augur_data"."author_affiliation" CASCADE; -DROP INDEX IF EXISTS "augur_data"."author_cntrb_id" CASCADE; -DROP INDEX IF EXISTS "augur_data"."author_email,author_affiliation,author_date" CASCADE; -DROP INDEX IF EXISTS "augur_data"."author_raw_email" CASCADE; -DROP INDEX IF EXISTS "augur_data"."cmt-author-date-idx2" CASCADE; -DROP INDEX IF EXISTS "augur_data"."cmt-committer-date-idx3" CASCADE; -DROP INDEX IF EXISTS "augur_data"."cmt_author-name-idx5" CASCADE; -DROP INDEX IF EXISTS "augur_data"."cmt_author_contrib_worker" CASCADE; -DROP INDEX IF EXISTS "augur_data"."cmt_cmmter-name-idx4" CASCADE; -DROP INDEX IF EXISTS "augur_data"."cmt_commiter_contrib_worker" CASCADE; -DROP INDEX IF EXISTS "augur_data"."commited" CASCADE; -DROP INDEX IF EXISTS "augur_data"."commits_idx_cmt_email_cmt_date_cmt_name" CASCADE; -DROP INDEX IF EXISTS "augur_data"."commits_idx_cmt_email_cmt_date_cmt_name2" CASCADE; -DROP INDEX IF EXISTS "augur_data"."commits_idx_cmt_name_cmt_date2" CASCADE; -DROP INDEX IF EXISTS "augur_data"."commits_idx_cmt_name_cmt_date_cmt_date3" CASCADE; -DROP INDEX IF EXISTS "augur_data"."commits_idx_repo_id_cmt_ema_cmt_dat_cmt_nam" CASCADE; -DROP INDEX IF EXISTS "augur_data"."commits_idx_repo_id_cmt_ema_cmt_dat_cmt_nam2" CASCADE; -DROP INDEX IF EXISTS "augur_data"."commits_idx_repo_id_cmt_ema_cmt_nam_cmt_dat2" CASCADE; -DROP INDEX IF EXISTS "augur_data"."commits_idx_repo_id_cmt_ema_cmt_nam_cmt_dat3" CASCADE; -DROP INDEX IF EXISTS "augur_data"."committer_affiliation" CASCADE; -DROP INDEX IF EXISTS "augur_data"."committer_cntrb_id" CASCADE; -DROP INDEX IF EXISTS "augur_data"."committer_email,committer_affiliation,committer_date" CASCADE; -DROP INDEX IF EXISTS "augur_data"."committer_raw_email" CASCADE; -DROP INDEX IF EXISTS "augur_data"."repo_id,commit" CASCADE; -DROP INDEX IF EXISTS "augur_data"."cnt-fullname" CASCADE; -DROP INDEX IF EXISTS "augur_data"."cntrb-theemail" CASCADE; -DROP INDEX IF EXISTS "augur_data"."cntrb_login_platform_index" CASCADE; -DROP INDEX IF EXISTS "augur_data"."contributor_delete_finder" CASCADE; -DROP INDEX IF EXISTS "augur_data"."contributor_worker_email_finder" CASCADE; -DROP INDEX IF EXISTS "augur_data"."contributor_worker_finder" CASCADE; -DROP INDEX IF EXISTS "augur_data"."contributor_worker_fullname_finder" CASCADE; -DROP INDEX IF EXISTS "augur_data"."contributors_idx_cntrb_email3" CASCADE; -DROP INDEX IF EXISTS "augur_data"."login" CASCADE; -DROP INDEX IF EXISTS "augur_data"."login-contributor-idx" CASCADE; -DROP INDEX IF EXISTS "augur_data"."alias,active" CASCADE; -DROP INDEX IF EXISTS "augur_data"."canonical,alias" CASCADE; -DROP INDEX IF EXISTS "augur_data"."issue-alias-cntrb-idx1" CASCADE; -DROP INDEX IF EXISTS "augur_data"."issue-alias-cntrb-idx2" CASCADE; -DROP INDEX IF EXISTS "augur_data"."contrb-history-dix1" CASCADE; -DROP INDEX IF EXISTS "augur_data"."login_index_2" CASCADE; -DROP INDEX IF EXISTS "augur_data"."repo_id,affiliation_copy_1" CASCADE; -DROP INDEX IF EXISTS "augur_data"."repo_id,email_copy_1" CASCADE; -DROP INDEX IF EXISTS "augur_data"."projects_id,affiliation_copy_1" CASCADE; -DROP INDEX IF EXISTS "augur_data"."projects_id,email_copy_1" CASCADE; -DROP INDEX IF EXISTS "augur_data"."projects_id,affiliation_copy_2" CASCADE; -DROP INDEX IF EXISTS "augur_data"."projects_id,email_copy_2" CASCADE; -DROP INDEX IF EXISTS "augur_data"."projects_id,year,affiliation_copy_1" CASCADE; -DROP INDEX IF EXISTS "augur_data"."projects_id,year,email_copy_1" CASCADE; -DROP INDEX IF EXISTS "augur_data"."projects_id,affiliation" CASCADE; -DROP INDEX IF EXISTS "augur_data"."projects_id,email" CASCADE; -DROP INDEX IF EXISTS "augur_data"."projects_id,year,affiliation" CASCADE; -DROP INDEX IF EXISTS "augur_data"."projects_id,year,email" CASCADE; -DROP INDEX IF EXISTS "augur_data"."repo_id,affiliation_copy_2" CASCADE; -DROP INDEX IF EXISTS "augur_data"."repo_id,email_copy_2" CASCADE; -DROP INDEX IF EXISTS "augur_data"."repo_id,year,affiliation_copy_1" CASCADE; -DROP INDEX IF EXISTS "augur_data"."repo_id,year,email_copy_1" CASCADE; -DROP INDEX IF EXISTS "augur_data"."repo_id,affiliation" CASCADE; -DROP INDEX IF EXISTS "augur_data"."repo_id,email" CASCADE; -DROP INDEX IF EXISTS "augur_data"."repo_id,year,affiliation" CASCADE; -DROP INDEX IF EXISTS "augur_data"."repo_id,year,email" CASCADE; -DROP INDEX IF EXISTS "augur_data"."issue-cntrb-assign-idx-1" CASCADE; -DROP INDEX IF EXISTS "augur_data"."issue-cntrb-idx2" CASCADE; -DROP INDEX IF EXISTS "augur_data"."issue_events_ibfk_1" CASCADE; -DROP INDEX IF EXISTS "augur_data"."issue_events_ibfk_2" CASCADE; -DROP INDEX IF EXISTS "augur_data"."issue-cntrb-dix2" CASCADE; -DROP INDEX IF EXISTS "augur_data"."issues_ibfk_1" CASCADE; -DROP INDEX IF EXISTS "augur_data"."issues_ibfk_2" CASCADE; -DROP INDEX IF EXISTS "augur_data"."issues_ibfk_4" CASCADE; -DROP INDEX IF EXISTS "augur_data"."REPO_DEP" CASCADE; -DROP INDEX IF EXISTS "augur_data"."messagegrouper" CASCADE; -DROP INDEX IF EXISTS "augur_data"."msg-cntrb-id-idx" CASCADE; -DROP INDEX IF EXISTS "augur_data"."platformgrouper" CASCADE; -DROP INDEX IF EXISTS "augur_data"."plat" CASCADE; -DROP INDEX IF EXISTS "augur_data"."pr_meta_cntrb-idx" CASCADE; -DROP INDEX IF EXISTS "augur_data"."pr_events_ibfk_1" CASCADE; -DROP INDEX IF EXISTS "augur_data"."pr_events_ibfk_2" CASCADE; -DROP INDEX IF EXISTS "augur_data"."pr_meta-cntrbid-idx" CASCADE; -DROP INDEX IF EXISTS "augur_data"."pr-cntrb-idx-repo" CASCADE; -DROP INDEX IF EXISTS "augur_data"."pr-reviewers-cntrb-idx1" CASCADE; -DROP INDEX IF EXISTS "augur_data"."id_node" CASCADE; -DROP INDEX IF EXISTS "augur_data"."forked" CASCADE; -DROP INDEX IF EXISTS "augur_data"."repogitindexrep" CASCADE; -DROP INDEX IF EXISTS "augur_data"."reponameindex" CASCADE; -DROP INDEX IF EXISTS "augur_data"."reponameindexbtree" CASCADE; -DROP INDEX IF EXISTS "augur_data"."rggrouponrepoindex" CASCADE; -DROP INDEX IF EXISTS "augur_data"."therepo" CASCADE; -DROP INDEX IF EXISTS "augur_data"."rgidm" CASCADE; -DROP INDEX IF EXISTS "augur_data"."rgnameindex" CASCADE; -DROP INDEX IF EXISTS "augur_data"."lister" CASCADE; -DROP INDEX IF EXISTS "augur_data"."dater" CASCADE; -DROP INDEX IF EXISTS "augur_data"."repos_id,status" CASCADE; -DROP INDEX IF EXISTS "augur_data"."repos_id,statusops" CASCADE; -DROP INDEX IF EXISTS "augur_data"."type,projects_id" CASCADE; -DROP INDEX IF EXISTS "augur_operations"."repos_id,statusops" CASCADE; - -ALTER TABLE IF EXISTS "augur_data"."commit_comment_ref" DROP CONSTRAINT "commitcomment" CASCADE; -ALTER TABLE IF EXISTS "augur_data"."contributor_affiliations" DROP CONSTRAINT "unique_domain" CASCADE; -ALTER TABLE IF EXISTS "augur_data"."message" DROP CONSTRAINT "REPOGROUPLISTER" CASCADE; -ALTER TABLE IF EXISTS "augur_data"."message" DROP CONSTRAINT "platformer" CASCADE; -ALTER TABLE IF EXISTS "augur_data"."repo_groups_list_serve" DROP CONSTRAINT "rglistserve" CASCADE; -ALTER TABLE IF EXISTS "spdx"."annotation_types" DROP CONSTRAINT "uc_annotation_type_name" CASCADE; -ALTER TABLE IF EXISTS "spdx"."document_namespaces" DROP CONSTRAINT "uc_document_namespace_uri" CASCADE; -ALTER TABLE IF EXISTS "spdx"."documents" DROP CONSTRAINT "uc_document_document_namespace_id" CASCADE; -ALTER TABLE IF EXISTS "spdx"."external_refs" DROP CONSTRAINT "uc_external_ref_document_id_string" CASCADE; -ALTER TABLE IF EXISTS "spdx"."files" DROP CONSTRAINT "uc_file_sha256" CASCADE; -ALTER TABLE IF EXISTS "spdx"."files_licenses" DROP CONSTRAINT "uc_file_license" CASCADE; -ALTER TABLE IF EXISTS "spdx"."files_scans" DROP CONSTRAINT "uc_file_scanner_id" CASCADE; -ALTER TABLE IF EXISTS "spdx"."identifiers" DROP CONSTRAINT "uc_identifier_document_namespace_id" CASCADE; -ALTER TABLE IF EXISTS "spdx"."identifiers" DROP CONSTRAINT "uc_identifier_namespace_document_id" CASCADE; -ALTER TABLE IF EXISTS "spdx"."identifiers" DROP CONSTRAINT "uc_identifier_namespace_package_id" CASCADE; -ALTER TABLE IF EXISTS "spdx"."identifiers" DROP CONSTRAINT "uc_identifier_namespace_package_file_id" CASCADE; -ALTER TABLE IF EXISTS "spdx"."licenses" DROP CONSTRAINT "uc_license_short_name" CASCADE; -ALTER TABLE IF EXISTS "spdx"."packages" DROP CONSTRAINT "uc_package_sha256" CASCADE; -ALTER TABLE IF EXISTS "spdx"."packages" DROP CONSTRAINT "uc_dir_code_ver_code" CASCADE; -ALTER TABLE IF EXISTS "spdx"."packages_files" DROP CONSTRAINT "uc_package_id_file_name" CASCADE; -ALTER TABLE IF EXISTS "spdx"."packages_scans" DROP CONSTRAINT "uc_package_scanner_id" CASCADE; -ALTER TABLE IF EXISTS "spdx"."relationship_types" DROP CONSTRAINT "uc_relationship_type_name" CASCADE; -ALTER TABLE IF EXISTS "spdx"."relationships" DROP CONSTRAINT "uc_left_right_relationship_type" CASCADE; -ALTER TABLE IF EXISTS "spdx"."scanners" DROP CONSTRAINT "uc_scanner_name" CASCADE; - -ALTER TABLE IF EXISTS "spdx"."identifiers" DROP CONSTRAINT "ck_identifier_exactly_one" CASCADE; -ALTER TABLE IF EXISTS "spdx"."packages" DROP CONSTRAINT "uc_sha256_ds2_dir_code_exactly_one" CASCADE; - -ALTER TABLE IF EXISTS "augur_data"."chaoss_metric_status" DROP CONSTRAINT "chaoss_metric_status_pkey" CASCADE; -ALTER TABLE IF EXISTS "augur_data"."commit_comment_ref" DROP CONSTRAINT "commit_comment_ref_pkey" CASCADE; -ALTER TABLE IF EXISTS "augur_data"."commit_parents" DROP CONSTRAINT "commit_parents_pkey" CASCADE; -ALTER TABLE IF EXISTS "augur_data"."commits" DROP CONSTRAINT "commits_pkey" CASCADE; -ALTER TABLE IF EXISTS "augur_data"."contributor_affiliations" DROP CONSTRAINT "contributor_affiliations_pkey" CASCADE; -ALTER TABLE IF EXISTS "augur_data"."contributors" DROP CONSTRAINT "contributors_pkey" CASCADE; -ALTER TABLE IF EXISTS "augur_data"."contributors_aliases" DROP CONSTRAINT "contributors_aliases_pkey" CASCADE; -ALTER TABLE IF EXISTS "augur_data"."contributors_history" DROP CONSTRAINT "contributors_history_pkey" CASCADE; -ALTER TABLE IF EXISTS "augur_data"."exclude" DROP CONSTRAINT "exclude_pkey" CASCADE; -ALTER TABLE IF EXISTS "augur_data"."issue_assignees" DROP CONSTRAINT "issue_assignees_pkey" CASCADE; -ALTER TABLE IF EXISTS "augur_data"."issue_events" DROP CONSTRAINT "issue_events_pkey" CASCADE; -ALTER TABLE IF EXISTS "augur_data"."issue_labels" DROP CONSTRAINT "issue_labels_pkey" CASCADE; -ALTER TABLE IF EXISTS "augur_data"."issue_message_ref" DROP CONSTRAINT "issue_message_ref_pkey" CASCADE; -ALTER TABLE IF EXISTS "augur_data"."issues" DROP CONSTRAINT "issues_pkey" CASCADE; -ALTER TABLE IF EXISTS "augur_data"."libraries" DROP CONSTRAINT "libraries_pkey" CASCADE; -ALTER TABLE IF EXISTS "augur_data"."library_dependencies" DROP CONSTRAINT "library_dependencies_pkey" CASCADE; -ALTER TABLE IF EXISTS "augur_data"."library_version" DROP CONSTRAINT "library_version_pkey" CASCADE; -ALTER TABLE IF EXISTS "augur_data"."lstm_anomaly_models" DROP CONSTRAINT "lstm_anomaly_models_pkey" CASCADE; -ALTER TABLE IF EXISTS "augur_data"."lstm_anomaly_results" DROP CONSTRAINT "lstm_anomaly_results_pkey" CASCADE; -ALTER TABLE IF EXISTS "augur_data"."message" DROP CONSTRAINT "message_pkey" CASCADE; -ALTER TABLE IF EXISTS "augur_data"."message_analysis" DROP CONSTRAINT "message_analysis_pkey" CASCADE; -ALTER TABLE IF EXISTS "augur_data"."message_analysis_summary" DROP CONSTRAINT "message_analysis_summary_pkey" CASCADE; -ALTER TABLE IF EXISTS "augur_data"."message_sentiment" DROP CONSTRAINT "message_sentiment_pkey" CASCADE; -ALTER TABLE IF EXISTS "augur_data"."message_sentiment_summary" DROP CONSTRAINT "message_sentiment_summary_pkey" CASCADE; -ALTER TABLE IF EXISTS "augur_data"."platform" DROP CONSTRAINT "theplat" CASCADE; -ALTER TABLE IF EXISTS "augur_data"."pull_request_assignees" DROP CONSTRAINT "pull_request_assignees_pkey" CASCADE; -ALTER TABLE IF EXISTS "augur_data"."pull_request_commits" DROP CONSTRAINT "pull_request_commits_pkey" CASCADE; -ALTER TABLE IF EXISTS "augur_data"."pull_request_events" DROP CONSTRAINT "pr_events_pkey" CASCADE; -ALTER TABLE IF EXISTS "augur_data"."pull_request_files" DROP CONSTRAINT "pull_request_files_pkey" CASCADE; -ALTER TABLE IF EXISTS "augur_data"."pull_request_labels" DROP CONSTRAINT "pull_request_labels_pkey" CASCADE; -ALTER TABLE IF EXISTS "augur_data"."pull_request_message_ref" DROP CONSTRAINT "pull_request_message_ref_pkey" CASCADE; -ALTER TABLE IF EXISTS "augur_data"."pull_request_meta" DROP CONSTRAINT "pull_request_meta_pkey" CASCADE; -ALTER TABLE IF EXISTS "augur_data"."pull_request_repo" DROP CONSTRAINT "pull_request_repo_pkey" CASCADE; -ALTER TABLE IF EXISTS "augur_data"."pull_request_reviewers" DROP CONSTRAINT "pull_request_reviewers_pkey" CASCADE; -ALTER TABLE IF EXISTS "augur_data"."pull_request_teams" DROP CONSTRAINT "pull_request_teams_pkey" CASCADE; -ALTER TABLE IF EXISTS "augur_data"."pull_requests" DROP CONSTRAINT "pull_requests_pkey" CASCADE; -ALTER TABLE IF EXISTS "augur_data"."releases" DROP CONSTRAINT "releases_pkey" CASCADE; -ALTER TABLE IF EXISTS "augur_data"."repo" DROP CONSTRAINT "repounique" CASCADE; -ALTER TABLE IF EXISTS "augur_data"."repo_badging" DROP CONSTRAINT "repo_badging_pkey" CASCADE; -ALTER TABLE IF EXISTS "augur_data"."repo_cluster_messages" DROP CONSTRAINT "repo_cluster_messages_pkey" CASCADE; -ALTER TABLE IF EXISTS "augur_data"."repo_group_insights" DROP CONSTRAINT "repo_group_insights_pkey" CASCADE; -ALTER TABLE IF EXISTS "augur_data"."repo_groups" DROP CONSTRAINT "rgid" CASCADE; -ALTER TABLE IF EXISTS "augur_data"."repo_groups_list_serve" DROP CONSTRAINT "repo_groups_list_serve_pkey" CASCADE; -ALTER TABLE IF EXISTS "augur_data"."repo_info" DROP CONSTRAINT "repo_info_pkey" CASCADE; -ALTER TABLE IF EXISTS "augur_data"."repo_insights" DROP CONSTRAINT "repo_insights_pkey" CASCADE; -ALTER TABLE IF EXISTS "augur_data"."repo_insights_records" DROP CONSTRAINT "repo_insights_records_pkey" CASCADE; -ALTER TABLE IF EXISTS "augur_data"."repo_labor" DROP CONSTRAINT "repo_labor_pkey" CASCADE; -ALTER TABLE IF EXISTS "augur_data"."repo_meta" DROP CONSTRAINT "repo_meta_pkey" CASCADE; -ALTER TABLE IF EXISTS "augur_data"."repo_sbom_scans" DROP CONSTRAINT "repo_sbom_scans_pkey" CASCADE; -ALTER TABLE IF EXISTS "augur_data"."repo_stats" DROP CONSTRAINT "repo_stats_pkey" CASCADE; -ALTER TABLE IF EXISTS "augur_data"."repo_test_coverage" DROP CONSTRAINT "repo_test_coverage_pkey" CASCADE; -ALTER TABLE IF EXISTS "augur_data"."repo_topic" DROP CONSTRAINT "repo_topic_pkey" CASCADE; -ALTER TABLE IF EXISTS "augur_data"."settings" DROP CONSTRAINT "settings_pkey" CASCADE; -ALTER TABLE IF EXISTS "augur_data"."topic_words" DROP CONSTRAINT "topic_words_pkey" CASCADE; -ALTER TABLE IF EXISTS "augur_data"."utility_log" DROP CONSTRAINT "utility_log_pkey" CASCADE; -ALTER TABLE IF EXISTS "augur_operations"."augur_settings" DROP CONSTRAINT "augur_settings_pkey" CASCADE; -ALTER TABLE IF EXISTS "augur_operations"."worker_history" DROP CONSTRAINT "history_pkey" CASCADE; -ALTER TABLE IF EXISTS "augur_operations"."worker_job" DROP CONSTRAINT "job_pkey" CASCADE; -ALTER TABLE IF EXISTS "augur_operations"."worker_oauth" DROP CONSTRAINT "worker_oauth_pkey" CASCADE; -ALTER TABLE IF EXISTS "augur_operations"."worker_settings_facade" DROP CONSTRAINT "settings_pkey" CASCADE; -ALTER TABLE IF EXISTS "spdx"."annotation_types" DROP CONSTRAINT "annotation_types_pkey" CASCADE; -ALTER TABLE IF EXISTS "spdx"."annotations" DROP CONSTRAINT "annotations_pkey" CASCADE; -ALTER TABLE IF EXISTS "spdx"."augur_repo_map" DROP CONSTRAINT "augur_repo_map_pkey" CASCADE; -ALTER TABLE IF EXISTS "spdx"."creator_types" DROP CONSTRAINT "creator_types_pkey" CASCADE; -ALTER TABLE IF EXISTS "spdx"."creators" DROP CONSTRAINT "creators_pkey" CASCADE; -ALTER TABLE IF EXISTS "spdx"."document_namespaces" DROP CONSTRAINT "document_namespaces_pkey" CASCADE; -ALTER TABLE IF EXISTS "spdx"."documents" DROP CONSTRAINT "documents_pkey" CASCADE; -ALTER TABLE IF EXISTS "spdx"."documents_creators" DROP CONSTRAINT "documents_creators_pkey" CASCADE; -ALTER TABLE IF EXISTS "spdx"."external_refs" DROP CONSTRAINT "external_refs_pkey" CASCADE; -ALTER TABLE IF EXISTS "spdx"."file_contributors" DROP CONSTRAINT "file_contributors_pkey" CASCADE; -ALTER TABLE IF EXISTS "spdx"."file_types" DROP CONSTRAINT "uc_file_type_name" CASCADE; -ALTER TABLE IF EXISTS "spdx"."files" DROP CONSTRAINT "files_pkey" CASCADE; -ALTER TABLE IF EXISTS "spdx"."files_licenses" DROP CONSTRAINT "files_licenses_pkey" CASCADE; -ALTER TABLE IF EXISTS "spdx"."files_scans" DROP CONSTRAINT "files_scans_pkey" CASCADE; -ALTER TABLE IF EXISTS "spdx"."identifiers" DROP CONSTRAINT "identifiers_pkey" CASCADE; -ALTER TABLE IF EXISTS "spdx"."licenses" DROP CONSTRAINT "licenses_pkey" CASCADE; -ALTER TABLE IF EXISTS "spdx"."packages" DROP CONSTRAINT "packages_pkey" CASCADE; -ALTER TABLE IF EXISTS "spdx"."packages_files" DROP CONSTRAINT "packages_files_pkey" CASCADE; -ALTER TABLE IF EXISTS "spdx"."packages_scans" DROP CONSTRAINT "packages_scans_pkey" CASCADE; -ALTER TABLE IF EXISTS "spdx"."projects" DROP CONSTRAINT "projects_pkey" CASCADE; -ALTER TABLE IF EXISTS "spdx"."relationship_types" DROP CONSTRAINT "relationship_types_pkey" CASCADE; -ALTER TABLE IF EXISTS "spdx"."relationships" DROP CONSTRAINT "relationships_pkey" CASCADE; -ALTER TABLE IF EXISTS "spdx"."scanners" DROP CONSTRAINT "scanners_pkey" CASCADE; - -DROP TABLE IF EXISTS "augur_data"."analysis_log" CASCADE; -DROP TABLE IF EXISTS "augur_data"."chaoss_metric_status" CASCADE; -DROP TABLE IF EXISTS "augur_data"."commit_comment_ref" CASCADE; -DROP TABLE IF EXISTS "augur_data"."commit_parents" CASCADE; -DROP TABLE IF EXISTS "augur_data"."commits" CASCADE; -DROP TABLE IF EXISTS "augur_data"."contributor_affiliations" CASCADE; -DROP TABLE IF EXISTS "augur_data"."contributors" CASCADE; -DROP TABLE IF EXISTS "augur_data"."contributors_aliases" CASCADE; -DROP TABLE IF EXISTS "augur_data"."contributors_history" CASCADE; -DROP TABLE IF EXISTS "augur_data"."discourse_insights" CASCADE; -DROP TABLE IF EXISTS "augur_data"."dm_repo_annual" CASCADE; -DROP TABLE IF EXISTS "augur_data"."dm_repo_group_annual" CASCADE; -DROP TABLE IF EXISTS "augur_data"."dm_repo_group_monthly" CASCADE; -DROP TABLE IF EXISTS "augur_data"."dm_repo_group_weekly" CASCADE; -DROP TABLE IF EXISTS "augur_data"."dm_repo_monthly" CASCADE; -DROP TABLE IF EXISTS "augur_data"."dm_repo_weekly" CASCADE; -DROP TABLE IF EXISTS "augur_data"."exclude" CASCADE; -DROP TABLE IF EXISTS "augur_data"."issue_assignees" CASCADE; -DROP TABLE IF EXISTS "augur_data"."issue_events" CASCADE; -DROP TABLE IF EXISTS "augur_data"."issue_labels" CASCADE; -DROP TABLE IF EXISTS "augur_data"."issue_message_ref" CASCADE; -DROP TABLE IF EXISTS "augur_data"."issues" CASCADE; -DROP TABLE IF EXISTS "augur_data"."libraries" CASCADE; -DROP TABLE IF EXISTS "augur_data"."library_dependencies" CASCADE; -DROP TABLE IF EXISTS "augur_data"."library_version" CASCADE; -DROP TABLE IF EXISTS "augur_data"."lstm_anomaly_models" CASCADE; -DROP TABLE IF EXISTS "augur_data"."lstm_anomaly_results" CASCADE; -DROP TABLE IF EXISTS "augur_data"."message" CASCADE; -DROP TABLE IF EXISTS "augur_data"."message_analysis" CASCADE; -DROP TABLE IF EXISTS "augur_data"."message_analysis_summary" CASCADE; -DROP TABLE IF EXISTS "augur_data"."message_sentiment" CASCADE; -DROP TABLE IF EXISTS "augur_data"."message_sentiment_summary" CASCADE; -DROP TABLE IF EXISTS "augur_data"."platform" CASCADE; -DROP TABLE IF EXISTS "augur_data"."pull_request_assignees" CASCADE; -DROP TABLE IF EXISTS "augur_data"."pull_request_commits" CASCADE; -DROP TABLE IF EXISTS "augur_data"."pull_request_events" CASCADE; -DROP TABLE IF EXISTS "augur_data"."pull_request_files" CASCADE; -DROP TABLE IF EXISTS "augur_data"."pull_request_labels" CASCADE; -DROP TABLE IF EXISTS "augur_data"."pull_request_message_ref" CASCADE; -DROP TABLE IF EXISTS "augur_data"."pull_request_meta" CASCADE; -DROP TABLE IF EXISTS "augur_data"."pull_request_repo" CASCADE; -DROP TABLE IF EXISTS "augur_data"."pull_request_reviewers" CASCADE; -DROP TABLE IF EXISTS "augur_data"."pull_request_teams" CASCADE; -DROP TABLE IF EXISTS "augur_data"."pull_requests" CASCADE; -DROP TABLE IF EXISTS "augur_data"."releases" CASCADE; -DROP TABLE IF EXISTS "augur_data"."repo" CASCADE; -DROP TABLE IF EXISTS "augur_data"."repo_badging" CASCADE; -DROP TABLE IF EXISTS "augur_data"."repo_cluster_messages" CASCADE; -DROP TABLE IF EXISTS "augur_data"."repo_group_insights" CASCADE; -DROP TABLE IF EXISTS "augur_data"."repo_groups" CASCADE; -DROP TABLE IF EXISTS "augur_data"."repo_groups_list_serve" CASCADE; -DROP TABLE IF EXISTS "augur_data"."repo_info" CASCADE; -DROP TABLE IF EXISTS "augur_data"."repo_insights" CASCADE; -DROP TABLE IF EXISTS "augur_data"."repo_insights_records" CASCADE; -DROP TABLE IF EXISTS "augur_data"."repo_labor" CASCADE; -DROP TABLE IF EXISTS "augur_data"."repo_meta" CASCADE; -DROP TABLE IF EXISTS "augur_data"."repo_sbom_scans" CASCADE; -DROP TABLE IF EXISTS "augur_data"."repo_stats" CASCADE; -DROP TABLE IF EXISTS "augur_data"."repo_test_coverage" CASCADE; -DROP TABLE IF EXISTS "augur_data"."repo_topic" CASCADE; -DROP TABLE IF EXISTS "augur_data"."repos_fetch_log" CASCADE; -DROP TABLE IF EXISTS "augur_data"."settings" CASCADE; -DROP TABLE IF EXISTS "augur_data"."topic_words" CASCADE; -DROP TABLE IF EXISTS "augur_data"."unknown_cache" CASCADE; -DROP TABLE IF EXISTS "augur_data"."utility_log" CASCADE; -DROP TABLE IF EXISTS "augur_data"."working_commits" CASCADE; -DROP TABLE IF EXISTS "augur_operations"."all" CASCADE; -DROP TABLE IF EXISTS "augur_operations"."augur_settings" CASCADE; -DROP TABLE IF EXISTS "augur_operations"."repos_fetch_log" CASCADE; -DROP TABLE IF EXISTS "augur_operations"."worker_history" CASCADE; -DROP TABLE IF EXISTS "augur_operations"."worker_job" CASCADE; -DROP TABLE IF EXISTS "augur_operations"."worker_oauth" CASCADE; -DROP TABLE IF EXISTS "augur_operations"."worker_settings_facade" CASCADE; -DROP TABLE IF EXISTS "augur_operations"."working_commits" CASCADE; -DROP TABLE IF EXISTS "spdx"."annotation_types" CASCADE; -DROP TABLE IF EXISTS "spdx"."annotations" CASCADE; -DROP TABLE IF EXISTS "spdx"."augur_repo_map" CASCADE; -DROP TABLE IF EXISTS "spdx"."creator_types" CASCADE; -DROP TABLE IF EXISTS "spdx"."creators" CASCADE; -DROP TABLE IF EXISTS "spdx"."document_namespaces" CASCADE; -DROP TABLE IF EXISTS "spdx"."documents" CASCADE; -DROP TABLE IF EXISTS "spdx"."documents_creators" CASCADE; -DROP TABLE IF EXISTS "spdx"."external_refs" CASCADE; -DROP TABLE IF EXISTS "spdx"."file_contributors" CASCADE; -DROP TABLE IF EXISTS "spdx"."file_types" CASCADE; -DROP TABLE IF EXISTS "spdx"."files" CASCADE; -DROP TABLE IF EXISTS "spdx"."files_licenses" CASCADE; -DROP TABLE IF EXISTS "spdx"."files_scans" CASCADE; -DROP TABLE IF EXISTS "spdx"."identifiers" CASCADE; -DROP TABLE IF EXISTS "spdx"."licenses" CASCADE; -DROP TABLE IF EXISTS "spdx"."packages" CASCADE; -DROP TABLE IF EXISTS "spdx"."packages_files" CASCADE; -DROP TABLE IF EXISTS "spdx"."packages_scans" CASCADE; -DROP TABLE IF EXISTS "spdx"."projects" CASCADE; -DROP TABLE IF EXISTS "spdx"."relationship_types" CASCADE; -DROP TABLE IF EXISTS "spdx"."relationships" CASCADE; -DROP TABLE IF EXISTS "spdx"."sbom_scans" CASCADE; -DROP TABLE IF EXISTS "spdx"."scanners" CASCADE; - -CREATE TABLE IF NOT EXISTS "augur_data"."analysis_log" ( - "repos_id" int4 NOT NULL, - "status" varchar COLLATE "pg_catalog"."default" NOT NULL, - "date_attempted" timestamp(0) NOT NULL DEFAULT CURRENT_TIMESTAMP -); -ALTER TABLE IF EXISTS "augur_data"."analysis_log" OWNER TO "augur"; -CREATE INDEX "repos_id" ON "augur_data"."analysis_log" USING btree ( - "repos_id" "pg_catalog"."int4_ops" ASC NULLS LAST -); - -CREATE TABLE IF NOT EXISTS "augur_data"."chaoss_metric_status" ( - "cms_id" int8 NOT NULL DEFAULT nextval('"augur_data".chaoss_metric_status_cms_id_seq'::regclass), - "cm_group" varchar COLLATE "pg_catalog"."default", - "cm_source" varchar COLLATE "pg_catalog"."default", - "cm_type" varchar COLLATE "pg_catalog"."default", - "cm_backend_status" varchar COLLATE "pg_catalog"."default", - "cm_frontend_status" varchar COLLATE "pg_catalog"."default", - "cm_defined" bool, - "cm_api_endpoint_repo" varchar COLLATE "pg_catalog"."default", - "cm_api_endpoint_rg" varchar COLLATE "pg_catalog"."default", - "cm_name" varchar COLLATE "pg_catalog"."default", - "cm_working_group" varchar COLLATE "pg_catalog"."default", - "cm_info" json, - "tool_source" varchar COLLATE "pg_catalog"."default", - "tool_version" varchar COLLATE "pg_catalog"."default", - "data_source" varchar COLLATE "pg_catalog"."default", - "data_collection_date" timestamp(0) DEFAULT CURRENT_TIMESTAMP, - "cm_working_group_focus_area" varchar COLLATE "pg_catalog"."default", - CONSTRAINT "chaoss_metric_status_pkey" PRIMARY KEY ("cms_id") -); -ALTER TABLE IF EXISTS "augur_data"."chaoss_metric_status" OWNER TO "augur"; -COMMENT ON TABLE "augur_data"."chaoss_metric_status" IS 'This table used to track CHAOSS Metric implementations in Augur, but due to the constantly changing location of that information, it is for the moment not actively populated. '; - -CREATE TABLE IF NOT EXISTS "augur_data"."commit_comment_ref" ( - "cmt_comment_id" int8 NOT NULL DEFAULT nextval('"augur_data".commit_comment_ref_cmt_comment_id_seq'::regclass), - "cmt_id" int8 NOT NULL, - "msg_id" int8 NOT NULL, - "user_id" int8 NOT NULL, - "body" text COLLATE "pg_catalog"."default", - "line" int8, - "position" int8, - "created_at" timestamp(0) NOT NULL DEFAULT CURRENT_TIMESTAMP, - "tool_source" varchar(255) COLLATE "pg_catalog"."default", - "tool_version" varchar(255) COLLATE "pg_catalog"."default", - "data_source" varchar(255) COLLATE "pg_catalog"."default", - "data_collection_date" timestamp(0) DEFAULT CURRENT_TIMESTAMP, - "cmt_comment_src_id" int8 NOT NULL, - "commit_comment_src_node_id" varchar COLLATE "pg_catalog"."default", - CONSTRAINT "commit_comment_ref_pkey" PRIMARY KEY ("cmt_comment_id"), - CONSTRAINT "commitcomment" UNIQUE ("cmt_id", "msg_id", "cmt_comment_id") -); -ALTER TABLE IF EXISTS "augur_data"."commit_comment_ref" OWNER TO "augur"; -CREATE INDEX "comment_id" ON "augur_data"."commit_comment_ref" USING btree ( - "cmt_comment_src_id" "pg_catalog"."int8_ops" ASC NULLS LAST, - "cmt_comment_id" "pg_catalog"."int8_ops" ASC NULLS LAST, - "msg_id" "pg_catalog"."int8_ops" ASC NULLS LAST -); -COMMENT ON COLUMN "augur_data"."commit_comment_ref"."cmt_comment_src_id" IS 'For data provenance, we store the source ID if it exists. '; -COMMENT ON COLUMN "augur_data"."commit_comment_ref"."commit_comment_src_node_id" IS 'For data provenance, we store the source node ID if it exists. '; - -CREATE TABLE IF NOT EXISTS "augur_data"."commit_parents" ( - "cmt_id" int8 NOT NULL, - "parent_id" int8 NOT NULL DEFAULT nextval('"augur_data".commit_parents_parent_id_seq'::regclass), - "tool_source" varchar(255) COLLATE "pg_catalog"."default", - "tool_version" varchar(255) COLLATE "pg_catalog"."default", - "data_source" varchar(255) COLLATE "pg_catalog"."default", - "data_collection_date" timestamp(0) DEFAULT CURRENT_TIMESTAMP, - CONSTRAINT "commit_parents_pkey" PRIMARY KEY ("cmt_id", "parent_id") -); -ALTER TABLE IF EXISTS "augur_data"."commit_parents" OWNER TO "augur"; -CREATE INDEX "commit_parents_ibfk_1" ON "augur_data"."commit_parents" USING btree ( - "cmt_id" "pg_catalog"."int8_ops" ASC NULLS LAST -); -CREATE INDEX "commit_parents_ibfk_2" ON "augur_data"."commit_parents" USING btree ( - "parent_id" "pg_catalog"."int8_ops" ASC NULLS LAST -); - -CREATE TABLE IF NOT EXISTS "augur_data"."commits" ( - "cmt_id" int8 NOT NULL DEFAULT nextval('"augur_data".commits_cmt_id_seq'::regclass), - "repo_id" int8 NOT NULL, - "cmt_commit_hash" varchar(80) COLLATE "pg_catalog"."default" NOT NULL, - "cmt_author_name" varchar(128) COLLATE "pg_catalog"."default" NOT NULL, - "cmt_author_raw_email" varchar(128) COLLATE "pg_catalog"."default" NOT NULL, - "cmt_author_email" varchar COLLATE "pg_catalog"."default" NOT NULL, - "cmt_author_date" varchar(10) COLLATE "pg_catalog"."default" NOT NULL, - "cmt_author_affiliation" varchar(128) COLLATE "pg_catalog"."default" DEFAULT 'NULL'::character varying, - "cmt_committer_name" varchar(128) COLLATE "pg_catalog"."default" NOT NULL, - "cmt_committer_raw_email" varchar(128) COLLATE "pg_catalog"."default" NOT NULL, - "cmt_committer_email" varchar COLLATE "pg_catalog"."default" NOT NULL, - "cmt_committer_date" varchar(10) COLLATE "pg_catalog"."default" NOT NULL, - "cmt_committer_affiliation" varchar(128) COLLATE "pg_catalog"."default" DEFAULT 'NULL'::character varying, - "cmt_added" int4 NOT NULL, - "cmt_removed" int4 NOT NULL, - "cmt_whitespace" int4 NOT NULL, - "cmt_filename" varchar(4096) COLLATE "pg_catalog"."default" NOT NULL, - "cmt_date_attempted" timestamp(0) NOT NULL, - "cmt_ght_author_id" int4, - "cmt_ght_committer_id" int4, - "cmt_ght_committed_at" timestamp(0), - "tool_source" varchar(255) COLLATE "pg_catalog"."default", - "tool_version" varchar(255) COLLATE "pg_catalog"."default", - "data_source" varchar(255) COLLATE "pg_catalog"."default", - "data_collection_date" timestamp(0) DEFAULT CURRENT_TIMESTAMP, - "cmt_author_timestamp" timestamptz(0), - "cmt_committer_timestamp" timestamptz(0), - CONSTRAINT "commits_pkey" PRIMARY KEY ("cmt_id") -); -ALTER TABLE IF EXISTS "augur_data"."commits" OWNER TO "augur"; -CREATE INDEX CONCURRENTLY "author_affiliation" ON "augur_data"."commits" USING hash ( - "cmt_author_affiliation" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" -); -CREATE INDEX CONCURRENTLY "author_cntrb_id" ON "augur_data"."commits" USING btree ( - "cmt_ght_author_id" "pg_catalog"."int4_ops" ASC NULLS LAST -); -CREATE INDEX CONCURRENTLY "author_email,author_affiliation,author_date" ON "augur_data"."commits" USING btree ( - "cmt_author_email" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST, - "cmt_author_affiliation" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST, - "cmt_author_date" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST -); -CREATE INDEX CONCURRENTLY "author_raw_email" ON "augur_data"."commits" USING btree ( - "cmt_author_raw_email" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST -); -CREATE INDEX CONCURRENTLY "cmt-author-date-idx2" ON "augur_data"."commits" USING btree ( - "cmt_author_date" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST -); -CREATE INDEX CONCURRENTLY "cmt-committer-date-idx3" ON "augur_data"."commits" USING btree ( - "cmt_committer_date" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST -); -CREATE INDEX CONCURRENTLY "cmt_author-name-idx5" ON "augur_data"."commits" USING btree ( - "cmt_committer_name" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST -); -CREATE INDEX CONCURRENTLY "cmt_author_contrib_worker" ON "augur_data"."commits" USING brin ( - "cmt_author_name" COLLATE "pg_catalog"."default" "pg_catalog"."text_minmax_ops", - "cmt_author_email" COLLATE "pg_catalog"."default" "pg_catalog"."text_minmax_ops", - "cmt_author_date" COLLATE "pg_catalog"."default" "pg_catalog"."text_minmax_ops" -); -CREATE INDEX CONCURRENTLY "cmt_cmmter-name-idx4" ON "augur_data"."commits" USING btree ( - "cmt_author_name" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST -); -CREATE INDEX CONCURRENTLY "cmt_commiter_contrib_worker" ON "augur_data"."commits" USING brin ( - "cmt_committer_name" COLLATE "pg_catalog"."default" "pg_catalog"."text_minmax_ops", - "cmt_committer_email" COLLATE "pg_catalog"."default" "pg_catalog"."text_minmax_ops", - "cmt_committer_date" COLLATE "pg_catalog"."default" "pg_catalog"."text_minmax_ops" -); -CREATE INDEX CONCURRENTLY "commited" ON "augur_data"."commits" USING btree ( - "cmt_id" "pg_catalog"."int8_ops" ASC NULLS LAST -); -CREATE INDEX CONCURRENTLY "commits_idx_cmt_email_cmt_date_cmt_name" ON "augur_data"."commits" USING btree ( - "cmt_author_email" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST, - "cmt_author_date" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST, - "cmt_author_name" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST -); -CREATE INDEX CONCURRENTLY "commits_idx_cmt_email_cmt_date_cmt_name2" ON "augur_data"."commits" USING btree ( - "cmt_committer_email" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST, - "cmt_committer_date" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST, - "cmt_committer_name" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST -); -CREATE INDEX CONCURRENTLY "commits_idx_cmt_name_cmt_date2" ON "augur_data"."commits" USING btree ( - "cmt_author_name" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST, - "cmt_author_date" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST -); -CREATE INDEX CONCURRENTLY "commits_idx_cmt_name_cmt_date_cmt_date3" ON "augur_data"."commits" USING btree ( - "cmt_committer_name" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST, - "cmt_author_date" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST, - "cmt_committer_date" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST -); -CREATE INDEX CONCURRENTLY "commits_idx_repo_id_cmt_ema_cmt_dat_cmt_nam" ON "augur_data"."commits" USING btree ( - "repo_id" "pg_catalog"."int8_ops" ASC NULLS LAST, - "cmt_author_email" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST, - "cmt_author_date" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST, - "cmt_author_name" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST -); -CREATE INDEX CONCURRENTLY "commits_idx_repo_id_cmt_ema_cmt_dat_cmt_nam2" ON "augur_data"."commits" USING btree ( - "repo_id" "pg_catalog"."int8_ops" ASC NULLS LAST, - "cmt_committer_email" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST, - "cmt_committer_date" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST, - "cmt_committer_name" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST -); -CREATE INDEX CONCURRENTLY "commits_idx_repo_id_cmt_ema_cmt_nam_cmt_dat2" ON "augur_data"."commits" USING btree ( - "repo_id" "pg_catalog"."int8_ops" ASC NULLS LAST, - "cmt_author_email" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST, - "cmt_author_name" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST, - "cmt_author_date" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST -); -CREATE INDEX CONCURRENTLY "commits_idx_repo_id_cmt_ema_cmt_nam_cmt_dat3" ON "augur_data"."commits" USING btree ( - "repo_id" "pg_catalog"."int8_ops" ASC NULLS LAST, - "cmt_committer_email" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST, - "cmt_committer_name" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST, - "cmt_author_date" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST -); -CREATE INDEX CONCURRENTLY "committer_affiliation" ON "augur_data"."commits" USING btree ( - "cmt_committer_affiliation" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST -); -CREATE INDEX CONCURRENTLY "committer_cntrb_id" ON "augur_data"."commits" USING btree ( - "cmt_ght_committer_id" "pg_catalog"."int4_ops" ASC NULLS LAST -); -CREATE INDEX CONCURRENTLY "committer_email,committer_affiliation,committer_date" ON "augur_data"."commits" USING btree ( - "cmt_committer_email" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST, - "cmt_committer_affiliation" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST, - "cmt_committer_date" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST -); -CREATE INDEX CONCURRENTLY "committer_raw_email" ON "augur_data"."commits" USING btree ( - "cmt_committer_raw_email" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST -); -CREATE INDEX CONCURRENTLY "repo_id,commit" ON "augur_data"."commits" USING btree ( - "repo_id" "pg_catalog"."int8_ops" ASC NULLS LAST, - "cmt_commit_hash" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST -); -COMMENT ON TABLE "augur_data"."commits" IS 'Starts with augur.analysis_data table and incorporates GHTorrent commit table attributes if different. -Cmt_id is from get -The author and committer ID’s are at the bottom of the table and not required for now because we want to focus on the facade schema’s properties over the ghtorrent properties when they are in conflict. '; - -CREATE TABLE IF NOT EXISTS "augur_data"."contributor_affiliations" ( - "ca_id" int8 NOT NULL DEFAULT nextval('"augur_data".contributor_affiliations_ca_id_seq'::regclass), - "ca_domain" varchar(64) COLLATE "pg_catalog"."default" NOT NULL, - "ca_start_date" date DEFAULT '1970-01-01'::date, - "tool_source" varchar(255) COLLATE "pg_catalog"."default", - "tool_version" varchar(255) COLLATE "pg_catalog"."default", - "data_source" varchar(255) COLLATE "pg_catalog"."default", - "data_collection_date" timestamp(0) DEFAULT CURRENT_TIMESTAMP, - "ca_last_used" timestamp(0) NOT NULL DEFAULT CURRENT_TIMESTAMP, - "ca_affiliation" varchar COLLATE "pg_catalog"."default", - "ca_active" int2 DEFAULT 1, - CONSTRAINT "contributor_affiliations_pkey" PRIMARY KEY ("ca_id"), - CONSTRAINT "unique_domain" UNIQUE ("ca_domain") -); -ALTER TABLE IF EXISTS "augur_data"."contributor_affiliations" OWNER TO "augur"; -COMMENT ON CONSTRAINT "unique_domain" ON "augur_data"."contributor_affiliations" IS 'Only one row should exist for any given top level domain or subdomain. '; - -CREATE TABLE IF NOT EXISTS "augur_data"."contributors" ( - "cntrb_id" int8 NOT NULL DEFAULT nextval('"augur_data".contributors_cntrb_id_seq'::regclass), - "cntrb_login" varchar(255) COLLATE "pg_catalog"."default", - "cntrb_email" varchar COLLATE "pg_catalog"."default", - "cntrb_company" varchar(255) COLLATE "pg_catalog"."default" DEFAULT NULL::character varying, - "cntrb_created_at" timestamp(0), - "cntrb_type" varchar(255) COLLATE "pg_catalog"."default", - "cntrb_fake" int2 DEFAULT 0, - "cntrb_deleted" int2 DEFAULT 0, - "cntrb_long" numeric(11,8) DEFAULT NULL::numeric, - "cntrb_lat" numeric(10,8) DEFAULT NULL::numeric, - "cntrb_country_code" char(3) COLLATE "pg_catalog"."default" DEFAULT NULL::bpchar, - "cntrb_state" varchar(255) COLLATE "pg_catalog"."default" DEFAULT NULL::character varying, - "cntrb_city" varchar(255) COLLATE "pg_catalog"."default" DEFAULT NULL::character varying, - "cntrb_location" varchar(255) COLLATE "pg_catalog"."default" DEFAULT NULL::character varying, - "cntrb_canonical" varchar COLLATE "pg_catalog"."default", - "gh_user_id" int8, - "gh_login" varchar(255) COLLATE "pg_catalog"."default", - "gh_url" varchar(255) COLLATE "pg_catalog"."default", - "gh_html_url" varchar(255) COLLATE "pg_catalog"."default", - "gh_node_id" varchar(255) COLLATE "pg_catalog"."default", - "gh_avatar_url" varchar(4000) COLLATE "pg_catalog"."default", - "gh_gravatar_id" varchar(255) COLLATE "pg_catalog"."default", - "gh_followers_url" varchar(4000) COLLATE "pg_catalog"."default", - "gh_following_url" varchar(4000) COLLATE "pg_catalog"."default", - "gh_gists_url" varchar(4000) COLLATE "pg_catalog"."default", - "gh_starred_url" varchar(4000) COLLATE "pg_catalog"."default", - "gh_subscriptions_url" varchar(4000) COLLATE "pg_catalog"."default", - "gh_organizations_url" varchar(4000) COLLATE "pg_catalog"."default", - "gh_repos_url" varchar(4000) COLLATE "pg_catalog"."default", - "gh_events_url" varchar(4000) COLLATE "pg_catalog"."default", - "gh_received_events_url" varchar(4000) COLLATE "pg_catalog"."default", - "gh_type" varchar(255) COLLATE "pg_catalog"."default", - "gh_site_admin" varchar(255) COLLATE "pg_catalog"."default", - "tool_source" varchar(255) COLLATE "pg_catalog"."default", - "tool_version" varchar(255) COLLATE "pg_catalog"."default", - "data_source" varchar(255) COLLATE "pg_catalog"."default", - "data_collection_date" timestamp(0) DEFAULT CURRENT_TIMESTAMP, - "cntrb_full_name" varchar COLLATE "pg_catalog"."default", - "cntrb_last_used" timestamptz(0) DEFAULT NULL::timestamp with time zone, - CONSTRAINT "contributors_pkey" PRIMARY KEY ("cntrb_id") -); -ALTER TABLE IF EXISTS "augur_data"."contributors" OWNER TO "augur"; -CREATE INDEX "cnt-fullname" ON "augur_data"."contributors" USING hash ( - "cntrb_full_name" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" -); -CREATE INDEX "cntrb-theemail" ON "augur_data"."contributors" USING hash ( - "cntrb_email" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" -); -CREATE INDEX "cntrb_login_platform_index" ON "augur_data"."contributors" USING btree ( - "cntrb_login" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST -); -CREATE INDEX "contributor_delete_finder" ON "augur_data"."contributors" USING brin ( - "cntrb_id" "pg_catalog"."int8_minmax_ops", - "cntrb_email" COLLATE "pg_catalog"."default" "pg_catalog"."text_minmax_ops" -); -CREATE INDEX "contributor_worker_email_finder" ON "augur_data"."contributors" USING brin ( - "cntrb_email" COLLATE "pg_catalog"."default" "pg_catalog"."text_minmax_ops" -); -CREATE INDEX "contributor_worker_finder" ON "augur_data"."contributors" USING brin ( - "cntrb_login" COLLATE "pg_catalog"."default" "pg_catalog"."text_minmax_ops", - "cntrb_email" COLLATE "pg_catalog"."default" "pg_catalog"."text_minmax_ops", - "cntrb_id" "pg_catalog"."int8_minmax_ops" -); -CREATE INDEX "contributor_worker_fullname_finder" ON "augur_data"."contributors" USING brin ( - "cntrb_full_name" COLLATE "pg_catalog"."default" "pg_catalog"."text_minmax_ops" -); -CREATE INDEX "contributors_idx_cntrb_email3" ON "augur_data"."contributors" USING btree ( - "cntrb_email" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST -); -CREATE INDEX "login" ON "augur_data"."contributors" USING btree ( - "cntrb_login" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST -); -CREATE INDEX "login-contributor-idx" ON "augur_data"."contributors" USING btree ( - "cntrb_login" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST -); -COMMENT ON COLUMN "augur_data"."contributors"."cntrb_login" IS 'Will be a double population with the same value as gh_login for github, but the local value for other systems. '; -COMMENT ON COLUMN "augur_data"."contributors"."cntrb_email" IS 'This needs to be here for matching contributor ids, which are augur, to the commit information. '; -COMMENT ON COLUMN "augur_data"."contributors"."cntrb_type" IS 'Present in another models. It is not currently used in Augur. '; -COMMENT ON COLUMN "augur_data"."contributors"."gh_login" IS 'populated with the github user name for github originated data. '; -COMMENT ON TABLE "augur_data"."contributors" IS 'For GitHub, this should be repeated from gh_login. for other systems, it should be that systems login. '; - -CREATE TABLE IF NOT EXISTS "augur_data"."contributors_aliases" ( - "cntrb_id" int8 NOT NULL, - "cntrb_a_id" int8 NOT NULL DEFAULT nextval('"augur_data".contributors_aliases_cntrb_a_id_seq'::regclass), - "canonical_email" varchar COLLATE "pg_catalog"."default" NOT NULL, - "alias_email" varchar(128) COLLATE "pg_catalog"."default" NOT NULL, - "cntrb_active" int2 NOT NULL DEFAULT 1, - "cntrb_last_modified" timestamp(0) NOT NULL DEFAULT CURRENT_TIMESTAMP, - "tool_source" varchar(255) COLLATE "pg_catalog"."default", - "tool_version" varchar(255) COLLATE "pg_catalog"."default", - "data_source" varchar(255) COLLATE "pg_catalog"."default", - "data_collection_date" timestamp(0) DEFAULT CURRENT_TIMESTAMP, - CONSTRAINT "contributors_aliases_pkey" PRIMARY KEY ("cntrb_id", "cntrb_a_id") -); -ALTER TABLE IF EXISTS "augur_data"."contributors_aliases" OWNER TO "augur"; -CREATE INDEX "alias,active" ON "augur_data"."contributors_aliases" USING btree ( - "alias_email" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST, - "cntrb_active" "pg_catalog"."int2_ops" ASC NULLS LAST -); -CREATE UNIQUE INDEX "canonical,alias" ON "augur_data"."contributors_aliases" USING btree ( - "canonical_email" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST, - "alias_email" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST -); -CREATE INDEX "issue-alias-cntrb-idx1" ON "augur_data"."contributors_aliases" USING btree ( - "cntrb_id" "pg_catalog"."int8_ops" ASC NULLS LAST -); -CREATE INDEX "issue-alias-cntrb-idx2" ON "augur_data"."contributors_aliases" USING btree ( - "cntrb_a_id" "pg_catalog"."int8_ops" ASC NULLS LAST -); -COMMENT ON TABLE "augur_data"."contributors_aliases" IS 'An alias will need to be created for every contributor in this model, otherwise we will have to look in 2 places. '; - -CREATE TABLE IF NOT EXISTS "augur_data"."contributors_history" ( - "cntrb_history_id" int8 NOT NULL DEFAULT nextval('"augur_data".contributors_history_cntrb_history_id_seq'::regclass), - "cntrb_id" int8 NOT NULL, - "cntrb_history_timestamp" timestamp(0) NOT NULL DEFAULT CURRENT_TIMESTAMP, - "cntrb_history_current_bool" bool, - "cntrb_organizations_list" json, - "cntrb_gists_count" int8, - "cntrb_starred_count" int8, - "cntrb_following_count" int8, - "cntrb_follower_count" int8, - "cntrb_login" varchar(255) COLLATE "pg_catalog"."default" NOT NULL, - "cntrb_email" varchar(255) COLLATE "pg_catalog"."default", - "cntrb_company" varchar(255) COLLATE "pg_catalog"."default" DEFAULT NULL::character varying, - "cntrb_created_at" timestamp(0) NOT NULL, - "cntrb_type" varchar(255) COLLATE "pg_catalog"."default", - "cntrb_fake" int2 NOT NULL DEFAULT 0, - "cntrb_deleted" int2 NOT NULL DEFAULT 0, - "cntrb_long" numeric(11,8) DEFAULT NULL::numeric, - "cntrb_lat" numeric(10,8) DEFAULT NULL::numeric, - "cntrb_country_code" char(3) COLLATE "pg_catalog"."default" DEFAULT NULL::bpchar, - "cntrb_state" varchar(255) COLLATE "pg_catalog"."default" DEFAULT NULL::character varying, - "cntrb_city" varchar(255) COLLATE "pg_catalog"."default" DEFAULT NULL::character varying, - "cntrb_location" varchar(255) COLLATE "pg_catalog"."default" DEFAULT NULL::character varying, - "cntrb_canonical" varchar(128) COLLATE "pg_catalog"."default", - "gh_user_id" int8, - "gh_login" varchar(255) COLLATE "pg_catalog"."default", - "gh_url" varchar(255) COLLATE "pg_catalog"."default", - "gh_html_url" varchar(255) COLLATE "pg_catalog"."default", - "gh_node_id" varchar(255) COLLATE "pg_catalog"."default", - "gh_avatar_url" varchar(4000) COLLATE "pg_catalog"."default", - "gh_gravatar_id" varchar(255) COLLATE "pg_catalog"."default", - "gh_followers_url" varchar(4000) COLLATE "pg_catalog"."default", - "gh_following_url" varchar(4000) COLLATE "pg_catalog"."default", - "gh_gists_url" varchar(4000) COLLATE "pg_catalog"."default", - "gh_starred_url" varchar(4000) COLLATE "pg_catalog"."default", - "gh_subscriptions_url" varchar(4000) COLLATE "pg_catalog"."default", - "gh_organizations_url" varchar(4000) COLLATE "pg_catalog"."default", - "gh_repos_url" varchar(4000) COLLATE "pg_catalog"."default", - "gh_events_url" varchar(4000) COLLATE "pg_catalog"."default", - "gh_received_events_url" varchar(4000) COLLATE "pg_catalog"."default", - "gh_type" varchar(255) COLLATE "pg_catalog"."default", - "gh_site_admin" varchar(255) COLLATE "pg_catalog"."default", - "tool_source" varchar(255) COLLATE "pg_catalog"."default", - "tool_version" varchar(255) COLLATE "pg_catalog"."default", - "data_source" varchar(255) COLLATE "pg_catalog"."default", - "data_collection_date" timestamp(0) DEFAULT CURRENT_TIMESTAMP, - CONSTRAINT "contributors_history_pkey" PRIMARY KEY ("cntrb_history_id") -); -ALTER TABLE IF EXISTS "augur_data"."contributors_history" OWNER TO "augur"; -CREATE INDEX "contrb-history-dix1" ON "augur_data"."contributors_history" USING btree ( - "cntrb_id" "pg_catalog"."int8_ops" ASC NULLS LAST -); -CREATE INDEX "login_index_2" ON "augur_data"."contributors_history" USING btree ( - "cntrb_login" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST -); -COMMENT ON COLUMN "augur_data"."contributors_history"."cntrb_history_current_bool" IS 'At some point it would be great to have a boolean updated by a contributor worker that set the most recent contributor data to true. '; -COMMENT ON COLUMN "augur_data"."contributors_history"."cntrb_login" IS 'Will be a double population with the same value as gh_login for github, but the local value for other systems. '; -COMMENT ON COLUMN "augur_data"."contributors_history"."cntrb_email" IS 'This needs to be here for matching contributor ids, which are augur, to the commit information. '; -COMMENT ON COLUMN "augur_data"."contributors_history"."cntrb_type" IS 'Present in another models. It is not currently used in Augur. '; -COMMENT ON COLUMN "augur_data"."contributors_history"."gh_login" IS 'populated with the github user name for github originated data. '; -COMMENT ON TABLE "augur_data"."contributors_history" IS 'For GitHub, this should be repeated from gh_login. for other systems, it should be that systems login. - -At this time the table is not populated. '; - -CREATE TABLE IF NOT EXISTS "augur_data"."discourse_insights" ( - "msg_discourse_id" serial8, - "msg_id" int8, - "discourse_act" varchar, - "tool_source" varchar, - "tool_version" varchar, - "data_source" varchar, - "data_collection_date" timestamptz DEFAULT CURRENT_TIMESTAMP, - PRIMARY KEY ("msg_discourse_id") -); -ALTER TABLE IF EXISTS "augur_data"."discourse_insights" OWNER TO "augur"; - -CREATE TABLE IF NOT EXISTS "augur_data"."dm_repo_annual" ( - "repo_id" int8 NOT NULL, - "email" varchar(128) COLLATE "pg_catalog"."default" NOT NULL, - "affiliation" varchar(128) COLLATE "pg_catalog"."default" DEFAULT 'NULL'::character varying, - "year" int2 NOT NULL, - "added" int8 NOT NULL, - "removed" int8 NOT NULL, - "whitespace" int8 NOT NULL, - "files" int8 NOT NULL, - "patches" int8 NOT NULL, - "tool_source" varchar(255) COLLATE "pg_catalog"."default", - "tool_version" varchar(255) COLLATE "pg_catalog"."default", - "data_source" varchar(255) COLLATE "pg_catalog"."default", - "data_collection_date" timestamp(0) DEFAULT CURRENT_TIMESTAMP -); -ALTER TABLE IF EXISTS "augur_data"."dm_repo_annual" OWNER TO "augur"; -CREATE INDEX "repo_id,affiliation_copy_1" ON "augur_data"."dm_repo_annual" USING btree ( - "repo_id" "pg_catalog"."int8_ops" ASC NULLS LAST, - "affiliation" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST -); -CREATE INDEX "repo_id,email_copy_1" ON "augur_data"."dm_repo_annual" USING btree ( - "repo_id" "pg_catalog"."int8_ops" ASC NULLS LAST, - "email" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST -); - -CREATE TABLE IF NOT EXISTS "augur_data"."dm_repo_group_annual" ( - "repo_group_id" int8 NOT NULL, - "email" varchar(128) COLLATE "pg_catalog"."default" NOT NULL, - "affiliation" varchar(128) COLLATE "pg_catalog"."default" DEFAULT 'NULL'::character varying, - "year" int2 NOT NULL, - "added" int8 NOT NULL, - "removed" int8 NOT NULL, - "whitespace" int8 NOT NULL, - "files" int8 NOT NULL, - "patches" int8 NOT NULL, - "tool_source" varchar(255) COLLATE "pg_catalog"."default", - "tool_version" varchar(255) COLLATE "pg_catalog"."default", - "data_source" varchar(255) COLLATE "pg_catalog"."default", - "data_collection_date" timestamp(0) DEFAULT CURRENT_TIMESTAMP -); -ALTER TABLE IF EXISTS "augur_data"."dm_repo_group_annual" OWNER TO "augur"; -CREATE INDEX "projects_id,affiliation_copy_1" ON "augur_data"."dm_repo_group_annual" USING btree ( - "repo_group_id" "pg_catalog"."int8_ops" ASC NULLS LAST, - "affiliation" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST -); -CREATE INDEX "projects_id,email_copy_1" ON "augur_data"."dm_repo_group_annual" USING btree ( - "repo_group_id" "pg_catalog"."int8_ops" ASC NULLS LAST, - "email" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST -); - -CREATE TABLE IF NOT EXISTS "augur_data"."dm_repo_group_monthly" ( - "repo_group_id" int8 NOT NULL, - "email" varchar(128) COLLATE "pg_catalog"."default" NOT NULL, - "affiliation" varchar(128) COLLATE "pg_catalog"."default" DEFAULT 'NULL'::character varying, - "month" int2 NOT NULL, - "year" int2 NOT NULL, - "added" int8 NOT NULL, - "removed" int8 NOT NULL, - "whitespace" int8 NOT NULL, - "files" int8 NOT NULL, - "patches" int8 NOT NULL, - "tool_source" varchar(255) COLLATE "pg_catalog"."default", - "tool_version" varchar(255) COLLATE "pg_catalog"."default", - "data_source" varchar(255) COLLATE "pg_catalog"."default", - "data_collection_date" timestamp(0) DEFAULT CURRENT_TIMESTAMP -); -ALTER TABLE IF EXISTS "augur_data"."dm_repo_group_monthly" OWNER TO "augur"; -CREATE INDEX "projects_id,affiliation_copy_2" ON "augur_data"."dm_repo_group_monthly" USING btree ( - "repo_group_id" "pg_catalog"."int8_ops" ASC NULLS LAST, - "affiliation" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST -); -CREATE INDEX "projects_id,email_copy_2" ON "augur_data"."dm_repo_group_monthly" USING btree ( - "repo_group_id" "pg_catalog"."int8_ops" ASC NULLS LAST, - "email" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST -); -CREATE INDEX "projects_id,year,affiliation_copy_1" ON "augur_data"."dm_repo_group_monthly" USING btree ( - "repo_group_id" "pg_catalog"."int8_ops" ASC NULLS LAST, - "year" "pg_catalog"."int2_ops" ASC NULLS LAST, - "affiliation" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST -); -CREATE INDEX "projects_id,year,email_copy_1" ON "augur_data"."dm_repo_group_monthly" USING btree ( - "repo_group_id" "pg_catalog"."int8_ops" ASC NULLS LAST, - "year" "pg_catalog"."int2_ops" ASC NULLS LAST, - "email" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST -); - -CREATE TABLE IF NOT EXISTS "augur_data"."dm_repo_group_weekly" ( - "repo_group_id" int8 NOT NULL, - "email" varchar(128) COLLATE "pg_catalog"."default" NOT NULL, - "affiliation" varchar(128) COLLATE "pg_catalog"."default" DEFAULT 'NULL'::character varying, - "week" int2 NOT NULL, - "year" int2 NOT NULL, - "added" int8 NOT NULL, - "removed" int8 NOT NULL, - "whitespace" int8 NOT NULL, - "files" int8 NOT NULL, - "patches" int8 NOT NULL, - "tool_source" varchar(255) COLLATE "pg_catalog"."default", - "tool_version" varchar(255) COLLATE "pg_catalog"."default", - "data_source" varchar(255) COLLATE "pg_catalog"."default", - "data_collection_date" timestamp(0) DEFAULT CURRENT_TIMESTAMP -); -ALTER TABLE IF EXISTS "augur_data"."dm_repo_group_weekly" OWNER TO "augur"; -CREATE INDEX "projects_id,affiliation" ON "augur_data"."dm_repo_group_weekly" USING btree ( - "repo_group_id" "pg_catalog"."int8_ops" ASC NULLS LAST, - "affiliation" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST -); -CREATE INDEX "projects_id,email" ON "augur_data"."dm_repo_group_weekly" USING btree ( - "repo_group_id" "pg_catalog"."int8_ops" ASC NULLS LAST, - "email" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST -); -CREATE INDEX "projects_id,year,affiliation" ON "augur_data"."dm_repo_group_weekly" USING btree ( - "repo_group_id" "pg_catalog"."int8_ops" ASC NULLS LAST, - "year" "pg_catalog"."int2_ops" ASC NULLS LAST, - "affiliation" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST -); -CREATE INDEX "projects_id,year,email" ON "augur_data"."dm_repo_group_weekly" USING btree ( - "repo_group_id" "pg_catalog"."int8_ops" ASC NULLS LAST, - "year" "pg_catalog"."int2_ops" ASC NULLS LAST, - "email" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST -); - -CREATE TABLE IF NOT EXISTS "augur_data"."dm_repo_monthly" ( - "repo_id" int8 NOT NULL, - "email" varchar(128) COLLATE "pg_catalog"."default" NOT NULL, - "affiliation" varchar(128) COLLATE "pg_catalog"."default" DEFAULT 'NULL'::character varying, - "month" int2 NOT NULL, - "year" int2 NOT NULL, - "added" int8 NOT NULL, - "removed" int8 NOT NULL, - "whitespace" int8 NOT NULL, - "files" int8 NOT NULL, - "patches" int8 NOT NULL, - "tool_source" varchar(255) COLLATE "pg_catalog"."default", - "tool_version" varchar(255) COLLATE "pg_catalog"."default", - "data_source" varchar(255) COLLATE "pg_catalog"."default", - "data_collection_date" timestamp(0) DEFAULT CURRENT_TIMESTAMP -); -ALTER TABLE IF EXISTS "augur_data"."dm_repo_monthly" OWNER TO "augur"; -CREATE INDEX "repo_id,affiliation_copy_2" ON "augur_data"."dm_repo_monthly" USING btree ( - "repo_id" "pg_catalog"."int8_ops" ASC NULLS LAST, - "affiliation" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST -); -CREATE INDEX "repo_id,email_copy_2" ON "augur_data"."dm_repo_monthly" USING btree ( - "repo_id" "pg_catalog"."int8_ops" ASC NULLS LAST, - "email" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST -); -CREATE INDEX "repo_id,year,affiliation_copy_1" ON "augur_data"."dm_repo_monthly" USING btree ( - "repo_id" "pg_catalog"."int8_ops" ASC NULLS LAST, - "year" "pg_catalog"."int2_ops" ASC NULLS LAST, - "affiliation" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST -); -CREATE INDEX "repo_id,year,email_copy_1" ON "augur_data"."dm_repo_monthly" USING btree ( - "repo_id" "pg_catalog"."int8_ops" ASC NULLS LAST, - "year" "pg_catalog"."int2_ops" ASC NULLS LAST, - "email" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST -); - -CREATE TABLE IF NOT EXISTS "augur_data"."dm_repo_weekly" ( - "repo_id" int8 NOT NULL, - "email" varchar(128) COLLATE "pg_catalog"."default" NOT NULL, - "affiliation" varchar(128) COLLATE "pg_catalog"."default" DEFAULT 'NULL'::character varying, - "week" int2 NOT NULL, - "year" int2 NOT NULL, - "added" int8 NOT NULL, - "removed" int8 NOT NULL, - "whitespace" int8 NOT NULL, - "files" int8 NOT NULL, - "patches" int8 NOT NULL, - "tool_source" varchar(255) COLLATE "pg_catalog"."default", - "tool_version" varchar(255) COLLATE "pg_catalog"."default", - "data_source" varchar(255) COLLATE "pg_catalog"."default", - "data_collection_date" timestamp(0) DEFAULT CURRENT_TIMESTAMP -); -ALTER TABLE IF EXISTS "augur_data"."dm_repo_weekly" OWNER TO "augur"; -CREATE INDEX "repo_id,affiliation" ON "augur_data"."dm_repo_weekly" USING btree ( - "repo_id" "pg_catalog"."int8_ops" ASC NULLS LAST, - "affiliation" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST -); -CREATE INDEX "repo_id,email" ON "augur_data"."dm_repo_weekly" USING btree ( - "repo_id" "pg_catalog"."int8_ops" ASC NULLS LAST, - "email" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST -); -CREATE INDEX "repo_id,year,affiliation" ON "augur_data"."dm_repo_weekly" USING btree ( - "repo_id" "pg_catalog"."int8_ops" ASC NULLS LAST, - "year" "pg_catalog"."int2_ops" ASC NULLS LAST, - "affiliation" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST -); -CREATE INDEX "repo_id,year,email" ON "augur_data"."dm_repo_weekly" USING btree ( - "repo_id" "pg_catalog"."int8_ops" ASC NULLS LAST, - "year" "pg_catalog"."int2_ops" ASC NULLS LAST, - "email" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST -); - -CREATE TABLE IF NOT EXISTS "augur_data"."exclude" ( - "id" int4 NOT NULL, - "projects_id" int4 NOT NULL, - "email" varchar(128) COLLATE "pg_catalog"."default" DEFAULT 'NULL'::character varying, - "domain" varchar(128) COLLATE "pg_catalog"."default" DEFAULT 'NULL'::character varying, - CONSTRAINT "exclude_pkey" PRIMARY KEY ("id") -); -ALTER TABLE IF EXISTS "augur_data"."exclude" OWNER TO "augur"; - -CREATE TABLE IF NOT EXISTS "augur_data"."issue_assignees" ( - "issue_assignee_id" int8 NOT NULL DEFAULT nextval('"augur_data".issue_assignees_issue_assignee_id_seq'::regclass), - "issue_id" int8, - "cntrb_id" int8, - "tool_source" varchar COLLATE "pg_catalog"."default", - "tool_version" varchar COLLATE "pg_catalog"."default", - "data_source" varchar COLLATE "pg_catalog"."default", - "data_collection_date" timestamp(0) DEFAULT CURRENT_TIMESTAMP, - "issue_assignee_src_id" int8, - "issue_assignee_src_node" varchar COLLATE "pg_catalog"."default", - CONSTRAINT "issue_assignees_pkey" PRIMARY KEY ("issue_assignee_id") -); -ALTER TABLE IF EXISTS "augur_data"."issue_assignees" OWNER TO "augur"; -CREATE INDEX "issue-cntrb-assign-idx-1" ON "augur_data"."issue_assignees" USING btree ( - "cntrb_id" "pg_catalog"."int8_ops" ASC NULLS LAST -); -COMMENT ON COLUMN "augur_data"."issue_assignees"."issue_assignee_src_id" IS 'This ID comes from the source. In the case of GitHub, it is the id that is the first field returned from the issue events API in the issue_assignees embedded JSON object. We may discover it is an ID for the person themselves; but my hypothesis is that its not.'; -COMMENT ON COLUMN "augur_data"."issue_assignees"."issue_assignee_src_node" IS 'This character based identifier comes from the source. In the case of GitHub, it is the id that is the second field returned from the issue events API in the issue_assignees embedded JSON object. We may discover it is an ID for the person themselves; but my hypothesis is that its not.'; - -CREATE TABLE IF NOT EXISTS "augur_data"."issue_events" ( - "event_id" int8 NOT NULL DEFAULT nextval('"augur_data".issue_events_event_id_seq'::regclass), - "issue_id" int8 NOT NULL, - "cntrb_id" int8 NOT NULL, - "action" varchar(255) COLLATE "pg_catalog"."default" NOT NULL, - "action_commit_hash" varchar COLLATE "pg_catalog"."default", - "created_at" timestamp(0) NOT NULL DEFAULT CURRENT_TIMESTAMP, - "node_id" varchar COLLATE "pg_catalog"."default", - "node_url" varchar COLLATE "pg_catalog"."default", - "tool_source" varchar(255) COLLATE "pg_catalog"."default", - "tool_version" varchar(255) COLLATE "pg_catalog"."default", - "data_source" varchar(255) COLLATE "pg_catalog"."default", - "data_collection_date" timestamp(0) DEFAULT CURRENT_TIMESTAMP, - "issue_event_src_id" int8, - CONSTRAINT "issue_events_pkey" PRIMARY KEY ("event_id") -); -ALTER TABLE IF EXISTS "augur_data"."issue_events" OWNER TO "augur"; -CREATE INDEX "issue-cntrb-idx2" ON "augur_data"."issue_events" USING btree ( - "issue_event_src_id" "pg_catalog"."int8_ops" ASC NULLS LAST -); -CREATE INDEX "issue_events_ibfk_1" ON "augur_data"."issue_events" USING btree ( - "issue_id" "pg_catalog"."int8_ops" ASC NULLS LAST -); -CREATE INDEX "issue_events_ibfk_2" ON "augur_data"."issue_events" USING btree ( - "cntrb_id" "pg_catalog"."int8_ops" ASC NULLS LAST -); -COMMENT ON COLUMN "augur_data"."issue_events"."node_id" IS 'This should be renamed to issue_event_src_node_id, as its the varchar identifier in GitHub and likely common in other sources as well. However, since it was created before we came to this naming standard and workers are built around it, we have it simply named as node_id. Anywhere you see node_id in the schema, it comes from GitHubs terminology.'; -COMMENT ON COLUMN "augur_data"."issue_events"."issue_event_src_id" IS 'This ID comes from the source. In the case of GitHub, it is the id that is the first field returned from the issue events API'; - -CREATE TABLE IF NOT EXISTS "augur_data"."issue_labels" ( - "issue_label_id" int8 NOT NULL DEFAULT nextval('"augur_data".issue_labels_issue_label_id_seq'::regclass), - "issue_id" int8, - "label_text" varchar COLLATE "pg_catalog"."default", - "label_description" varchar COLLATE "pg_catalog"."default", - "label_color" varchar COLLATE "pg_catalog"."default", - "tool_source" varchar(255) COLLATE "pg_catalog"."default", - "tool_version" varchar(255) COLLATE "pg_catalog"."default", - "data_source" varchar(255) COLLATE "pg_catalog"."default", - "data_collection_date" timestamp(0) DEFAULT CURRENT_TIMESTAMP, - "label_src_id" int8, - "label_src_node_id" varchar COLLATE "pg_catalog"."default", - CONSTRAINT "issue_labels_pkey" PRIMARY KEY ("issue_label_id") -); -ALTER TABLE IF EXISTS "augur_data"."issue_labels" OWNER TO "augur"; -COMMENT ON COLUMN "augur_data"."issue_labels"."label_src_id" IS 'This character based identifier (node) comes from the source. In the case of GitHub, it is the id that is the second field returned from the issue events API JSON subsection for issues.'; - -CREATE TABLE IF NOT EXISTS "augur_data"."issue_message_ref" ( - "issue_msg_ref_id" int8 NOT NULL DEFAULT nextval('"augur_data".issue_message_ref_issue_msg_ref_id_seq'::regclass), - "issue_id" int8, - "msg_id" int8, - "tool_source" varchar(255) COLLATE "pg_catalog"."default", - "tool_version" varchar(255) COLLATE "pg_catalog"."default", - "data_source" varchar(255) COLLATE "pg_catalog"."default", - "data_collection_date" timestamp(0) DEFAULT CURRENT_TIMESTAMP, - "issue_msg_ref_src_comment_id" int8, - "issue_msg_ref_src_node_id" varchar COLLATE "pg_catalog"."default", - CONSTRAINT "issue_message_ref_pkey" PRIMARY KEY ("issue_msg_ref_id") -); -ALTER TABLE IF EXISTS "augur_data"."issue_message_ref" OWNER TO "augur"; -COMMENT ON COLUMN "augur_data"."issue_message_ref"."issue_msg_ref_src_comment_id" IS 'This ID comes from the source. In the case of GitHub, it is the id that is the first field returned from the issue comments API'; -COMMENT ON COLUMN "augur_data"."issue_message_ref"."issue_msg_ref_src_node_id" IS 'This character based identifier comes from the source. In the case of GitHub, it is the id that is the first field returned from the issue comments API'; - -CREATE TABLE IF NOT EXISTS "augur_data"."issues" ( - "issue_id" int8 NOT NULL DEFAULT nextval('"augur_data".issue_seq'::regclass), - "repo_id" int8, - "reporter_id" int8, - "pull_request" int8, - "pull_request_id" int8, - "created_at" timestamp(0), - "issue_title" varchar(500) COLLATE "pg_catalog"."default", - "issue_body" text COLLATE "pg_catalog"."default", - "cntrb_id" int8, - "comment_count" int8, - "updated_at" timestamp(0), - "closed_at" timestamp(0), - "due_on" timestamp(0), - "repository_url" varchar(4000) COLLATE "pg_catalog"."default", - "issue_url" varchar(4000) COLLATE "pg_catalog"."default", - "labels_url" varchar(4000) COLLATE "pg_catalog"."default", - "comments_url" varchar(4000) COLLATE "pg_catalog"."default", - "events_url" varchar(4000) COLLATE "pg_catalog"."default", - "html_url" varchar(4000) COLLATE "pg_catalog"."default", - "issue_state" varchar(255) COLLATE "pg_catalog"."default", - "issue_node_id" varchar COLLATE "pg_catalog"."default", - "gh_issue_id" int8, - "gh_user_id" int8, - "tool_source" varchar(255) COLLATE "pg_catalog"."default", - "tool_version" varchar(255) COLLATE "pg_catalog"."default", - "data_source" varchar(255) COLLATE "pg_catalog"."default", - "data_collection_date" timestamp(0) DEFAULT CURRENT_TIMESTAMP, - "gh_issue_number" int8, - CONSTRAINT "issues_pkey" PRIMARY KEY ("issue_id") -); -ALTER TABLE IF EXISTS "augur_data"."issues" OWNER TO "augur"; -CREATE INDEX "issue-cntrb-dix2" ON "augur_data"."issues" USING btree ( - "cntrb_id" "pg_catalog"."int8_ops" ASC NULLS LAST -); -CREATE INDEX "issues_ibfk_1" ON "augur_data"."issues" USING btree ( - "repo_id" "pg_catalog"."int8_ops" ASC NULLS LAST -); -CREATE INDEX "issues_ibfk_2" ON "augur_data"."issues" USING btree ( - "reporter_id" "pg_catalog"."int8_ops" ASC NULLS LAST -); -CREATE INDEX "issues_ibfk_4" ON "augur_data"."issues" USING btree ( - "pull_request_id" "pg_catalog"."int8_ops" ASC NULLS LAST -); -COMMENT ON COLUMN "augur_data"."issues"."reporter_id" IS 'The ID of the person who opened the issue. '; -COMMENT ON COLUMN "augur_data"."issues"."cntrb_id" IS 'The ID of the person who closed the issue. '; - -CREATE TABLE IF NOT EXISTS "augur_data"."libraries" ( - "library_id" int8 NOT NULL DEFAULT nextval('"augur_data".libraries_library_id_seq'::regclass), - "repo_id" int8, - "platform" varchar(255) COLLATE "pg_catalog"."default" DEFAULT NULL::character varying, - "name" varchar(255) COLLATE "pg_catalog"."default" DEFAULT NULL::character varying, - "created_timestamp" timestamp(0) DEFAULT NULL::timestamp without time zone, - "updated_timestamp" timestamp(0) DEFAULT NULL::timestamp without time zone, - "library_description" varchar(2000) COLLATE "pg_catalog"."default" DEFAULT NULL::character varying, - "keywords" varchar(255) COLLATE "pg_catalog"."default" DEFAULT NULL::character varying, - "library_homepage" varchar(1000) COLLATE "pg_catalog"."default" DEFAULT NULL::character varying, - "license" varchar(255) COLLATE "pg_catalog"."default" DEFAULT NULL::character varying, - "version_count" int4, - "latest_release_timestamp" varchar(255) COLLATE "pg_catalog"."default" DEFAULT NULL::character varying, - "latest_release_number" varchar(255) COLLATE "pg_catalog"."default" DEFAULT NULL::character varying, - "package_manager_id" varchar(255) COLLATE "pg_catalog"."default" DEFAULT NULL::character varying, - "dependency_count" int4, - "dependent_library_count" int4, - "primary_language" varchar(255) COLLATE "pg_catalog"."default" DEFAULT NULL::character varying, - "tool_source" varchar(255) COLLATE "pg_catalog"."default", - "tool_version" varchar(255) COLLATE "pg_catalog"."default", - "data_source" varchar(255) COLLATE "pg_catalog"."default", - "data_collection_date" timestamp(0), - CONSTRAINT "libraries_pkey" PRIMARY KEY ("library_id") -); -ALTER TABLE IF EXISTS "augur_data"."libraries" OWNER TO "augur"; - -CREATE TABLE IF NOT EXISTS "augur_data"."library_dependencies" ( - "lib_dependency_id" int8 NOT NULL DEFAULT nextval('"augur_data".library_dependencies_lib_dependency_id_seq'::regclass), - "library_id" int8, - "manifest_platform" varchar(255) COLLATE "pg_catalog"."default" DEFAULT NULL::character varying, - "manifest_filepath" varchar(1000) COLLATE "pg_catalog"."default" DEFAULT NULL::character varying, - "manifest_kind" varchar(255) COLLATE "pg_catalog"."default" DEFAULT NULL::character varying, - "repo_id_branch" varchar(255) COLLATE "pg_catalog"."default" NOT NULL, - "tool_source" varchar(255) COLLATE "pg_catalog"."default", - "tool_version" varchar(255) COLLATE "pg_catalog"."default", - "data_source" varchar(255) COLLATE "pg_catalog"."default", - "data_collection_date" timestamp(0), - CONSTRAINT "library_dependencies_pkey" PRIMARY KEY ("lib_dependency_id") -); -ALTER TABLE IF EXISTS "augur_data"."library_dependencies" OWNER TO "augur"; -CREATE INDEX "REPO_DEP" ON "augur_data"."library_dependencies" USING btree ( - "library_id" "pg_catalog"."int8_ops" ASC NULLS LAST -); - -CREATE TABLE IF NOT EXISTS "augur_data"."library_version" ( - "library_version_id" int8 NOT NULL DEFAULT nextval('"augur_data".library_version_library_version_id_seq'::regclass), - "library_id" int8, - "library_platform" varchar(255) COLLATE "pg_catalog"."default" DEFAULT NULL::character varying, - "version_number" varchar(255) COLLATE "pg_catalog"."default" DEFAULT NULL::character varying, - "version_release_date" timestamp(0) DEFAULT NULL::timestamp without time zone, - "tool_source" varchar(255) COLLATE "pg_catalog"."default", - "tool_version" varchar(255) COLLATE "pg_catalog"."default", - "data_source" varchar(255) COLLATE "pg_catalog"."default", - "data_collection_date" timestamp(0), - CONSTRAINT "library_version_pkey" PRIMARY KEY ("library_version_id") -); -ALTER TABLE IF EXISTS "augur_data"."library_version" OWNER TO "augur"; - -CREATE TABLE IF NOT EXISTS "augur_data"."lstm_anomaly_models" ( - "model_id" int8 NOT NULL DEFAULT nextval('"augur_data".lstm_anomaly_models_model_id_seq'::regclass), - "model_name" varchar COLLATE "pg_catalog"."default", - "model_description" varchar COLLATE "pg_catalog"."default", - "look_back_days" int8, - "training_days" int8, - "batch_size" int8, - "metric" varchar COLLATE "pg_catalog"."default", - "tool_source" varchar COLLATE "pg_catalog"."default", - "tool_version" varchar COLLATE "pg_catalog"."default", - "data_source" varchar COLLATE "pg_catalog"."default", - "data_collection_date" timestamp(6) DEFAULT CURRENT_TIMESTAMP, - CONSTRAINT "lstm_anomaly_models_pkey" PRIMARY KEY ("model_id") -); -ALTER TABLE IF EXISTS "augur_data"."lstm_anomaly_models" OWNER TO "augur"; - -CREATE TABLE IF NOT EXISTS "augur_data"."lstm_anomaly_results" ( - "result_id" int8 NOT NULL DEFAULT nextval('"augur_data".lstm_anomaly_results_result_id_seq'::regclass), - "repo_id" int8, - "repo_category" varchar COLLATE "pg_catalog"."default", - "model_id" int8, - "metric" varchar COLLATE "pg_catalog"."default", - "contamination_factor" float8, - "mean_absolute_error" float8, - "remarks" varchar COLLATE "pg_catalog"."default", - "metric_field" varchar COLLATE "pg_catalog"."default", - "mean_absolute_actual_value" float8, - "mean_absolute_prediction_value" float8, - "tool_source" varchar COLLATE "pg_catalog"."default", - "tool_version" varchar COLLATE "pg_catalog"."default", - "data_source" varchar COLLATE "pg_catalog"."default", - "data_collection_date" timestamp(6) DEFAULT CURRENT_TIMESTAMP, - CONSTRAINT "lstm_anomaly_results_pkey" PRIMARY KEY ("result_id") -); -ALTER TABLE IF EXISTS "augur_data"."lstm_anomaly_results" OWNER TO "augur"; -COMMENT ON COLUMN "augur_data"."lstm_anomaly_results"."metric_field" IS 'This is a listing of all of the endpoint fields included in the generation of the metric. Sometimes there is one, sometimes there is more than one. This will list them all. '; - -CREATE TABLE IF NOT EXISTS "augur_data"."message" ( - "msg_id" int8 NOT NULL DEFAULT nextval('"augur_data".message_msg_id_seq'::regclass), - "rgls_id" int8, - "msg_text" text COLLATE "pg_catalog"."default", - "msg_timestamp" timestamp(0), - "msg_sender_email" varchar(255) COLLATE "pg_catalog"."default", - "msg_header" varchar(4000) COLLATE "pg_catalog"."default", - "pltfrm_id" int8 NOT NULL, - "tool_source" varchar(255) COLLATE "pg_catalog"."default", - "tool_version" varchar(255) COLLATE "pg_catalog"."default", - "data_source" varchar(255) COLLATE "pg_catalog"."default", - "data_collection_date" timestamp(0), - "cntrb_id" int8, - CONSTRAINT "message_pkey" PRIMARY KEY ("msg_id"), - CONSTRAINT "REPOGROUPLISTER" UNIQUE ("msg_id", "rgls_id"), - CONSTRAINT "platformer" UNIQUE ("msg_id", "pltfrm_id") -); -ALTER TABLE IF EXISTS "augur_data"."message" OWNER TO "augur"; -CREATE UNIQUE INDEX "messagegrouper" ON "augur_data"."message" USING btree ( - "msg_id" "pg_catalog"."int8_ops" ASC NULLS LAST, - "rgls_id" "pg_catalog"."int8_ops" ASC NULLS LAST -); -CREATE INDEX "msg-cntrb-id-idx" ON "augur_data"."message" USING btree ( - "cntrb_id" "pg_catalog"."int8_ops" ASC NULLS LAST -); -CREATE INDEX "platformgrouper" ON "augur_data"."message" USING btree ( - "msg_id" "pg_catalog"."int8_ops" ASC NULLS LAST, - "pltfrm_id" "pg_catalog"."int8_ops" ASC NULLS LAST -); -COMMENT ON COLUMN "augur_data"."message"."cntrb_id" IS 'Not populated for mailing lists. Populated for GitHub issues. '; - -CREATE TABLE IF NOT EXISTS "augur_data"."message_analysis" ( - "msg_analysis_id" int8 NOT NULL DEFAULT nextval('"augur_data".message_analysis_msg_analysis_id_seq'::regclass), - "msg_id" int8, - "worker_run_id" int8, - "sentiment_score" float8, - "reconstruction_error" float8, - "novelty_flag" bool, - "feedback_flag" bool, - "tool_source" varchar COLLATE "pg_catalog"."default", - "tool_version" varchar COLLATE "pg_catalog"."default", - "data_source" varchar COLLATE "pg_catalog"."default", - "data_collection_date" timestamp(0) DEFAULT CURRENT_TIMESTAMP, - CONSTRAINT "message_analysis_pkey" PRIMARY KEY ("msg_analysis_id") -); -ALTER TABLE IF EXISTS "augur_data"."message_analysis" OWNER TO "augur"; -COMMENT ON COLUMN "augur_data"."message_analysis"."worker_run_id" IS 'This column is used to indicate analyses run by a worker during the same execution period, and is useful for grouping, and time series analysis. '; -COMMENT ON COLUMN "augur_data"."message_analysis"."sentiment_score" IS 'A sentiment analysis score. Zero is neutral, negative numbers are negative sentiment, and positive numbers are positive sentiment. '; -COMMENT ON COLUMN "augur_data"."message_analysis"."reconstruction_error" IS 'Each message is converted to a 250 dimensin doc2vec vector, so the reconstruction error is the difference between what the predicted vector and the actual vector.'; -COMMENT ON COLUMN "augur_data"."message_analysis"."novelty_flag" IS 'This is an analysis of the degree to which the message is novel when compared to other messages in a repository. For example when bots are producing numerous identical messages, the novelty score is low. It would also be a low novelty score when several people are making the same coment. '; -COMMENT ON COLUMN "augur_data"."message_analysis"."feedback_flag" IS 'This exists to provide the user with an opportunity provide feedback on the resulting the sentiment scores. '; - -CREATE TABLE IF NOT EXISTS "augur_data"."message_analysis_summary" ( - "msg_summary_id" int8 NOT NULL DEFAULT nextval('"augur_data".message_analysis_summary_msg_summary_id_seq'::regclass), - "repo_id" int8, - "worker_run_id" int8, - "positive_ratio" float8, - "negative_ratio" float8, - "novel_count" int8, - "period" timestamp(0), - "tool_source" varchar COLLATE "pg_catalog"."default", - "tool_version" varchar COLLATE "pg_catalog"."default", - "data_source" varchar COLLATE "pg_catalog"."default", - "data_collection_date" timestamp(0) DEFAULT CURRENT_TIMESTAMP, - CONSTRAINT "message_analysis_summary_pkey" PRIMARY KEY ("msg_summary_id") -); -ALTER TABLE IF EXISTS "augur_data"."message_analysis_summary" OWNER TO "augur"; -COMMENT ON COLUMN "augur_data"."message_analysis_summary"."worker_run_id" IS 'This value should reflect the worker_run_id for the messages summarized in the table. There is not a relation between these two tables for that purpose because its not *really*, relationaly a concept unless we create a third table for "worker_run_id", which we determined was unnecessarily complex. '; -COMMENT ON COLUMN "augur_data"."message_analysis_summary"."novel_count" IS 'The number of messages identified as novel during the analyzed period'; -COMMENT ON COLUMN "augur_data"."message_analysis_summary"."period" IS 'The whole timeline is divided into periods based on the definition of time period for analysis, which is user specified. Timestamp of the first period to look at, until the end of messages at the data of execution. '; -COMMENT ON TABLE "augur_data"."message_analysis_summary" IS 'In a relationally perfect world, we would have a table called “message_analysis_run” the incremented the “worker_run_id” for both message_analysis and message_analysis_summary. For now, we decided this was overkill. '; - -CREATE TABLE IF NOT EXISTS "augur_data"."message_sentiment" ( - "msg_analysis_id" int8 NOT NULL DEFAULT nextval('"augur_data".message_sentiment_msg_analysis_id_seq'::regclass), - "msg_id" int8, - "worker_run_id" int8, - "sentiment_score" float8, - "reconstruction_error" float8, - "novelty_flag" bool, - "feedback_flag" bool, - "tool_source" varchar COLLATE "pg_catalog"."default", - "tool_version" varchar COLLATE "pg_catalog"."default", - "data_source" varchar COLLATE "pg_catalog"."default", - "data_collection_date" timestamp(0) DEFAULT CURRENT_TIMESTAMP, - CONSTRAINT "message_sentiment_pkey" PRIMARY KEY ("msg_analysis_id") -); -ALTER TABLE IF EXISTS "augur_data"."message_sentiment" OWNER TO "augur"; -COMMENT ON COLUMN "augur_data"."message_sentiment"."worker_run_id" IS 'This column is used to indicate analyses run by a worker during the same execution period, and is useful for grouping, and time series analysis. '; -COMMENT ON COLUMN "augur_data"."message_sentiment"."sentiment_score" IS 'A sentiment analysis score. Zero is neutral, negative numbers are negative sentiment, and positive numbers are positive sentiment. '; -COMMENT ON COLUMN "augur_data"."message_sentiment"."reconstruction_error" IS 'Each message is converted to a 250 dimensin doc2vec vector, so the reconstruction error is the difference between what the predicted vector and the actual vector.'; -COMMENT ON COLUMN "augur_data"."message_sentiment"."novelty_flag" IS 'This is an analysis of the degree to which the message is novel when compared to other messages in a repository. For example when bots are producing numerous identical messages, the novelty score is low. It would also be a low novelty score when several people are making the same coment. '; -COMMENT ON COLUMN "augur_data"."message_sentiment"."feedback_flag" IS 'This exists to provide the user with an opportunity provide feedback on the resulting the sentiment scores. '; - -CREATE TABLE IF NOT EXISTS "augur_data"."message_sentiment_summary" ( - "msg_summary_id" int8 NOT NULL DEFAULT nextval('"augur_data".message_sentiment_summary_msg_summary_id_seq'::regclass), - "repo_id" int8, - "worker_run_id" int8, - "positive_ratio" float8, - "negative_ratio" float8, - "novel_count" int8, - "period" timestamp(0), - "tool_source" varchar COLLATE "pg_catalog"."default", - "tool_version" varchar COLLATE "pg_catalog"."default", - "data_source" varchar COLLATE "pg_catalog"."default", - "data_collection_date" timestamp(0) DEFAULT CURRENT_TIMESTAMP, - CONSTRAINT "message_sentiment_summary_pkey" PRIMARY KEY ("msg_summary_id") -); -ALTER TABLE IF EXISTS "augur_data"."message_sentiment_summary" OWNER TO "augur"; -COMMENT ON COLUMN "augur_data"."message_sentiment_summary"."worker_run_id" IS 'This value should reflect the worker_run_id for the messages summarized in the table. There is not a relation between these two tables for that purpose because its not *really*, relationaly a concept unless we create a third table for "worker_run_id", which we determined was unnecessarily complex. '; -COMMENT ON COLUMN "augur_data"."message_sentiment_summary"."novel_count" IS 'The number of messages identified as novel during the analyzed period'; -COMMENT ON COLUMN "augur_data"."message_sentiment_summary"."period" IS 'The whole timeline is divided into periods based on the definition of time period for analysis, which is user specified. Timestamp of the first period to look at, until the end of messages at the data of execution. '; -COMMENT ON TABLE "augur_data"."message_sentiment_summary" IS 'In a relationally perfect world, we would have a table called “message_sentiment_run” the incremented the “worker_run_id” for both message_sentiment and message_sentiment_summary. For now, we decided this was overkill. '; - -CREATE TABLE IF NOT EXISTS "augur_data"."platform" ( - "pltfrm_id" int8 NOT NULL DEFAULT nextval('"augur_data".platform_pltfrm_id_seq'::regclass), - "pltfrm_name" varchar(255) COLLATE "pg_catalog"."default", - "pltfrm_version" varchar(255) COLLATE "pg_catalog"."default", - "pltfrm_release_date" date, - "tool_source" varchar(255) COLLATE "pg_catalog"."default", - "tool_version" varchar(255) COLLATE "pg_catalog"."default", - "data_source" varchar(255) COLLATE "pg_catalog"."default", - "data_collection_date" timestamp(0), - CONSTRAINT "theplat" PRIMARY KEY ("pltfrm_id") -); -ALTER TABLE IF EXISTS "augur_data"."platform" OWNER TO "augur"; -CREATE UNIQUE INDEX "plat" ON "augur_data"."platform" USING btree ( - "pltfrm_id" "pg_catalog"."int8_ops" ASC NULLS LAST -); - -CREATE TABLE IF NOT EXISTS "augur_data"."pull_request_assignees" ( - "pr_assignee_map_id" int8 NOT NULL DEFAULT nextval('"augur_data".pull_request_assignees_pr_assignee_map_id_seq'::regclass), - "pull_request_id" int8, - "contrib_id" int8, - "tool_source" varchar(255) COLLATE "pg_catalog"."default", - "tool_version" varchar(255) COLLATE "pg_catalog"."default", - "data_source" varchar(255) COLLATE "pg_catalog"."default", - "data_collection_date" timestamp(0) DEFAULT CURRENT_TIMESTAMP, - CONSTRAINT "pull_request_assignees_pkey" PRIMARY KEY ("pr_assignee_map_id") -); -ALTER TABLE IF EXISTS "augur_data"."pull_request_assignees" OWNER TO "augur"; -CREATE INDEX "pr_meta_cntrb-idx" ON "augur_data"."pull_request_assignees" USING btree ( - "contrib_id" "pg_catalog"."int8_ops" ASC NULLS LAST -); - -CREATE TABLE IF NOT EXISTS "augur_data"."pull_request_commits" ( - "pr_cmt_id" int8 NOT NULL DEFAULT nextval('"augur_data".pull_request_commits_pr_cmt_id_seq'::regclass), - "pull_request_id" int8, - "pr_cmt_sha" varchar COLLATE "pg_catalog"."default", - "pr_cmt_node_id" varchar COLLATE "pg_catalog"."default", - "pr_cmt_message" varchar COLLATE "pg_catalog"."default", - "pr_cmt_comments_url" varbit, - "tool_source" varchar COLLATE "pg_catalog"."default", - "tool_version" varchar COLLATE "pg_catalog"."default", - "data_source" varchar COLLATE "pg_catalog"."default", - "data_collection_date" timestamp(0) DEFAULT CURRENT_TIMESTAMP, - CONSTRAINT "pull_request_commits_pkey" PRIMARY KEY ("pr_cmt_id") -); -ALTER TABLE IF EXISTS "augur_data"."pull_request_commits" OWNER TO "augur"; -COMMENT ON COLUMN "augur_data"."pull_request_commits"."pr_cmt_sha" IS 'This is the commit SHA for a pull request commit. If the PR is not to the master branch of the main repository (or, in rare cases, from it), then you will NOT find a corresponding commit SHA in the commit table. (see table comment for further explanation). '; -COMMENT ON TABLE "augur_data"."pull_request_commits" IS 'Pull request commits are an enumeration of each commit associated with a pull request. -Not all pull requests are from a branch or fork into master. -The commits table intends to count only commits that end up in the master branch (i.e., part of the deployed code base for a project). -Therefore, there will be commit “SHA”’s in this table that are no associated with a commit SHA in the commits table. -In cases where the PR is to the master branch of a project, you will find a match. In cases where the PR does not involve the master branch, you will not find a corresponding commit SHA in the commits table. This is expected. '; - -CREATE TABLE IF NOT EXISTS "augur_data"."pull_request_events" ( - "pr_event_id" int8 NOT NULL DEFAULT nextval('"augur_data".pull_request_events_pr_event_id_seq'::regclass), - "pull_request_id" int8 NOT NULL, - "cntrb_id" int8 NOT NULL, - "action" varchar(255) COLLATE "pg_catalog"."default" NOT NULL, - "action_commit_hash" varchar COLLATE "pg_catalog"."default", - "created_at" timestamp(0) NOT NULL DEFAULT CURRENT_TIMESTAMP, - "issue_event_src_id" int8, - "node_id" varchar COLLATE "pg_catalog"."default", - "node_url" varchar COLLATE "pg_catalog"."default", - "tool_source" varchar(255) COLLATE "pg_catalog"."default", - "tool_version" varchar(255) COLLATE "pg_catalog"."default", - "data_source" varchar(255) COLLATE "pg_catalog"."default", - "data_collection_date" timestamp(0) DEFAULT CURRENT_TIMESTAMP, - CONSTRAINT "pr_events_pkey" PRIMARY KEY ("pr_event_id") -); -ALTER TABLE IF EXISTS "augur_data"."pull_request_events" OWNER TO "augur"; -CREATE INDEX "pr_events_ibfk_1" ON "augur_data"."pull_request_events" USING btree ( - "pull_request_id" "pg_catalog"."int8_ops" ASC NULLS LAST -); -CREATE INDEX "pr_events_ibfk_2" ON "augur_data"."pull_request_events" USING btree ( - "cntrb_id" "pg_catalog"."int8_ops" ASC NULLS LAST -); -COMMENT ON COLUMN "augur_data"."pull_request_events"."issue_event_src_id" IS 'This ID comes from the source. In the case of GitHub, it is the id that is the first field returned from the issue events API'; -COMMENT ON COLUMN "augur_data"."pull_request_events"."node_id" IS 'This should be renamed to issue_event_src_node_id, as its the varchar identifier in GitHub and likely common in other sources as well. However, since it was created before we came to this naming standard and workers are built around it, we have it simply named as node_id. Anywhere you see node_id in the schema, it comes from GitHubs terminology.'; - -CREATE TABLE IF NOT EXISTS "augur_data"."pull_request_files" ( - "pull_request_id" int8, - "pr_file_id" int8 NOT NULL DEFAULT nextval('"augur_data".pull_request_files_pr_file_id_seq'::regclass), - "pr_file_additions" int8, - "pr_file_deletions" int8, - "pr_file_path" varchar COLLATE "pg_catalog"."default", - "tool_source" varchar COLLATE "pg_catalog"."default", - "tool_version" varchar COLLATE "pg_catalog"."default", - "data_source" varchar COLLATE "pg_catalog"."default", - "data_collection_date" timestamp(0) DEFAULT CURRENT_TIMESTAMP, - CONSTRAINT "pull_request_files_pkey" PRIMARY KEY ("pr_file_id") -); -ALTER TABLE IF EXISTS "augur_data"."pull_request_files" OWNER TO "augur"; -COMMENT ON TABLE "augur_data"."pull_request_files" IS 'Pull request commits are an enumeration of each commit associated with a pull request. -Not all pull requests are from a branch or fork into master. -The commits table intends to count only commits that end up in the master branch (i.e., part of the deployed code base for a project). -Therefore, there will be commit “SHA”’s in this table that are no associated with a commit SHA in the commits table. -In cases where the PR is to the master branch of a project, you will find a match. In cases where the PR does not involve the master branch, you will not find a corresponding commit SHA in the commits table. This is expected. '; - -CREATE TABLE IF NOT EXISTS "augur_data"."pull_request_labels" ( - "pr_label_id" int8 NOT NULL DEFAULT nextval('"augur_data".pull_request_labels_pr_label_id_seq'::regclass), - "pull_request_id" int8, - "pr_src_id" int8, - "pr_src_node_id" varchar COLLATE "pg_catalog"."default", - "pr_src_url" varchar COLLATE "pg_catalog"."default", - "pr_src_description" varchar COLLATE "pg_catalog"."default", - "pr_src_color" varchar COLLATE "pg_catalog"."default", - "pr_src_default_bool" bool, - "tool_source" varchar(255) COLLATE "pg_catalog"."default", - "tool_version" varchar(255) COLLATE "pg_catalog"."default", - "data_source" varchar(255) COLLATE "pg_catalog"."default", - "data_collection_date" timestamp(0) DEFAULT CURRENT_TIMESTAMP, - CONSTRAINT "pull_request_labels_pkey" PRIMARY KEY ("pr_label_id") -); -ALTER TABLE IF EXISTS "augur_data"."pull_request_labels" OWNER TO "augur"; - -CREATE TABLE IF NOT EXISTS "augur_data"."pull_request_message_ref" ( - "pr_msg_ref_id" int8 NOT NULL DEFAULT nextval('"augur_data".pull_request_message_ref_pr_msg_ref_id_seq'::regclass), - "pull_request_id" int8, - "msg_id" int8, - "pr_message_ref_src_comment_id" int8, - "pr_message_ref_src_node_id" varchar COLLATE "pg_catalog"."default", - "tool_source" varchar(255) COLLATE "pg_catalog"."default", - "tool_version" varchar(255) COLLATE "pg_catalog"."default", - "data_source" varchar(255) COLLATE "pg_catalog"."default", - "data_collection_date" timestamp(0) DEFAULT CURRENT_TIMESTAMP, - CONSTRAINT "pull_request_message_ref_pkey" PRIMARY KEY ("pr_msg_ref_id") -); -ALTER TABLE IF EXISTS "augur_data"."pull_request_message_ref" OWNER TO "augur"; - -CREATE TABLE IF NOT EXISTS "augur_data"."pull_request_meta" ( - "pr_repo_meta_id" int8 NOT NULL DEFAULT nextval('"augur_data".pull_request_meta_pr_repo_meta_id_seq'::regclass), - "pull_request_id" int8, - "pr_head_or_base" varchar COLLATE "pg_catalog"."default", - "pr_src_meta_label" varchar COLLATE "pg_catalog"."default", - "pr_src_meta_ref" varchar COLLATE "pg_catalog"."default", - "pr_sha" varchar COLLATE "pg_catalog"."default", - "cntrb_id" int8, - "tool_source" varchar(255) COLLATE "pg_catalog"."default", - "tool_version" varchar(255) COLLATE "pg_catalog"."default", - "data_source" varchar(255) COLLATE "pg_catalog"."default", - "data_collection_date" timestamp(0) DEFAULT CURRENT_TIMESTAMP, - CONSTRAINT "pull_request_meta_pkey" PRIMARY KEY ("pr_repo_meta_id") -); -ALTER TABLE IF EXISTS "augur_data"."pull_request_meta" OWNER TO "augur"; -CREATE INDEX "pr_meta-cntrbid-idx" ON "augur_data"."pull_request_meta" USING btree ( - "cntrb_id" "pg_catalog"."int8_ops" ASC NULLS LAST -); -COMMENT ON COLUMN "augur_data"."pull_request_meta"."pr_head_or_base" IS 'Each pull request should have one and only one head record; and one and only one base record. '; -COMMENT ON COLUMN "augur_data"."pull_request_meta"."pr_src_meta_label" IS 'This is a representation of the repo:branch information in the pull request. Head is issueing the pull request and base is taking the pull request. For example: (We do not store all of this) - - "head": { - "label": "chaoss:pull-request-worker", - "ref": "pull-request-worker", - "sha": "6b380c3d6d625616f79d702612ebab6d204614f2", - "user": { - "login": "chaoss", - "id": 29740296, - "node_id": "MDEyOk9yZ2FuaXphdGlvbjI5NzQwMjk2", - "avatar_url": "https://avatars2.githubusercontent.com/u/29740296?v=4", - "gravatar_id": "", - "url": "https://api.github.com/users/chaoss", - "html_url": "https://github.com/chaoss", - "followers_url": "https://api.github.com/users/chaoss/followers", - "following_url": "https://api.github.com/users/chaoss/following{/other_user}", - "gists_url": "https://api.github.com/users/chaoss/gists{/gist_id}", - "starred_url": "https://api.github.com/users/chaoss/starred{/owner}{/repo}", - "subscriptions_url": "https://api.github.com/users/chaoss/subscriptions", - "organizations_url": "https://api.github.com/users/chaoss/orgs", - "repos_url": "https://api.github.com/users/chaoss/repos", - "events_url": "https://api.github.com/users/chaoss/events{/privacy}", - "received_events_url": "https://api.github.com/users/chaoss/received_events", - "type": "Organization", - "site_admin": false - }, - "repo": { - "id": 78134122, - "node_id": "MDEwOlJlcG9zaXRvcnk3ODEzNDEyMg==", - "name": "augur", - "full_name": "chaoss/augur", - "private": false, - "owner": { - "login": "chaoss", - "id": 29740296, - "node_id": "MDEyOk9yZ2FuaXphdGlvbjI5NzQwMjk2", - "avatar_url": "https://avatars2.githubusercontent.com/u/29740296?v=4", - "gravatar_id": "", - "url": "https://api.github.com/users/chaoss", - "html_url": "https://github.com/chaoss", - "followers_url": "https://api.github.com/users/chaoss/followers", - "following_url": "https://api.github.com/users/chaoss/following{/other_user}", - "gists_url": "https://api.github.com/users/chaoss/gists{/gist_id}", - "starred_url": "https://api.github.com/users/chaoss/starred{/owner}{/repo}", - "subscriptions_url": "https://api.github.com/users/chaoss/subscriptions", - "organizations_url": "https://api.github.com/users/chaoss/orgs", - "repos_url": "https://api.github.com/users/chaoss/repos", - "events_url": "https://api.github.com/users/chaoss/events{/privacy}", - "received_events_url": "https://api.github.com/users/chaoss/received_events", - "type": "Organization", - "site_admin": false - }, - "html_url": "https://github.com/chaoss/augur", - "description": "Python library and web service for Open Source Software Health and Sustainability metrics & data collection.", - "fork": false, - "url": "https://api.github.com/repos/chaoss/augur", - "forks_url": "https://api.github.com/repos/chaoss/augur/forks", - "keys_url": "https://api.github.com/repos/chaoss/augur/keys{/key_id}", - "collaborators_url": "https://api.github.com/repos/chaoss/augur/collaborators{/collaborator}", - "teams_url": "https://api.github.com/repos/chaoss/augur/teams", - "hooks_url": "https://api.github.com/repos/chaoss/augur/hooks", - "issue_events_url": "https://api.github.com/repos/chaoss/augur/issues/events{/number}", - "events_url": "https://api.github.com/repos/chaoss/augur/events", - "assignees_url": "https://api.github.com/repos/chaoss/augur/assignees{/user}", - "branches_url": "https://api.github.com/repos/chaoss/augur/branches{/branch}", - "tags_url": "https://api.github.com/repos/chaoss/augur/tags", - "blobs_url": "https://api.github.com/repos/chaoss/augur/git/blobs{/sha}", - "git_tags_url": "https://api.github.com/repos/chaoss/augur/git/tags{/sha}", - "git_refs_url": "https://api.github.com/repos/chaoss/augur/git/refs{/sha}", - "trees_url": "https://api.github.com/repos/chaoss/augur/git/trees{/sha}", - "statuses_url": "https://api.github.com/repos/chaoss/augur/statuses/{sha}", - "languages_url": "https://api.github.com/repos/chaoss/augur/languages", - "stargazers_url": "https://api.github.com/repos/chaoss/augur/stargazers", - "contributors_url": "https://api.github.com/repos/chaoss/augur/contributors", - "subscribers_url": "https://api.github.com/repos/chaoss/augur/subscribers", - "subscription_url": "https://api.github.com/repos/chaoss/augur/subscription", - "commits_url": "https://api.github.com/repos/chaoss/augur/commits{/sha}", - "git_commits_url": "https://api.github.com/repos/chaoss/augur/git/commits{/sha}", - "comments_url": "https://api.github.com/repos/chaoss/augur/comments{/number}", - "issue_comment_url": "https://api.github.com/repos/chaoss/augur/issues/comments{/number}", - "contents_url": "https://api.github.com/repos/chaoss/augur/contents/{+path}", - "compare_url": "https://api.github.com/repos/chaoss/augur/compare/{base}...{head}", - "merges_url": "https://api.github.com/repos/chaoss/augur/merges", - "archive_url": "https://api.github.com/repos/chaoss/augur/{archive_format}{/ref}", - "downloads_url": "https://api.github.com/repos/chaoss/augur/downloads", - "issues_url": "https://api.github.com/repos/chaoss/augur/issues{/number}", - "pulls_url": "https://api.github.com/repos/chaoss/augur/pulls{/number}", - "milestones_url": "https://api.github.com/repos/chaoss/augur/milestones{/number}", - "notifications_url": "https://api.github.com/repos/chaoss/augur/notifications{?since,all,participating}", - "labels_url": "https://api.github.com/repos/chaoss/augur/labels{/name}", - "releases_url": "https://api.github.com/repos/chaoss/augur/releases{/id}", - "deployments_url": "https://api.github.com/repos/chaoss/augur/deployments", - "created_at": "2017-01-05T17:34:54Z", - "updated_at": "2019-11-15T00:56:12Z", - "pushed_at": "2019-12-02T06:27:26Z", - "git_url": "git://github.com/chaoss/augur.git", - "ssh_url": "git@github.com:chaoss/augur.git", - "clone_url": "https://github.com/chaoss/augur.git", - "svn_url": "https://github.com/chaoss/augur", - "homepage": "http://augur.osshealth.io/", - "size": 82004, - "stargazers_count": 153, - "watchers_count": 153, - "language": "Python", - "has_issues": true, - "has_projects": false, - "has_downloads": true, - "has_wiki": false, - "has_pages": true, - "forks_count": 205, - "mirror_url": null, - "archived": false, - "disabled": false, - "open_issues_count": 14, - "license": { - "key": "mit", - "name": "MIT License", - "spdx_id": "MIT", - "url": "https://api.github.com/licenses/mit", - "node_id": "MDc6TGljZW5zZTEz" - }, - "forks": 205, - "open_issues": 14, - "watchers": 153, - "default_branch": "master" - } - }, - "base": { - "label": "chaoss:dev", - "ref": "dev", - "sha": "bfd2d34b51659613dd842cf83c3873f7699c2a0e", - "user": { - "login": "chaoss", - "id": 29740296, - "node_id": "MDEyOk9yZ2FuaXphdGlvbjI5NzQwMjk2", - "avatar_url": "https://avatars2.githubusercontent.com/u/29740296?v=4", - "gravatar_id": "", - "url": "https://api.github.com/users/chaoss", - "html_url": "https://github.com/chaoss", - "followers_url": "https://api.github.com/users/chaoss/followers", - "following_url": "https://api.github.com/users/chaoss/following{/other_user}", - "gists_url": "https://api.github.com/users/chaoss/gists{/gist_id}", - "starred_url": "https://api.github.com/users/chaoss/starred{/owner}{/repo}", - "subscriptions_url": "https://api.github.com/users/chaoss/subscriptions", - "organizations_url": "https://api.github.com/users/chaoss/orgs", - "repos_url": "https://api.github.com/users/chaoss/repos", - "events_url": "https://api.github.com/users/chaoss/events{/privacy}", - "received_events_url": "https://api.github.com/users/chaoss/received_events", - "type": "Organization", - "site_admin": false - }, - "repo": { - "id": 78134122, - "node_id": "MDEwOlJlcG9zaXRvcnk3ODEzNDEyMg==", - "name": "augur", - "full_name": "chaoss/augur", - "private": false, - "owner": { - "login": "chaoss", - "id": 29740296, - "node_id": "MDEyOk9yZ2FuaXphdGlvbjI5NzQwMjk2", - "avatar_url": "https://avatars2.githubusercontent.com/u/29740296?v=4", - "gravatar_id": "", - "url": "https://api.github.com/users/chaoss", - "html_url": "https://github.com/chaoss", - "followers_url": "https://api.github.com/users/chaoss/followers", - "following_url": "https://api.github.com/users/chaoss/following{/other_user}", - "gists_url": "https://api.github.com/users/chaoss/gists{/gist_id}", - "starred_url": "https://api.github.com/users/chaoss/starred{/owner}{/repo}", - "subscriptions_url": "https://api.github.com/users/chaoss/subscriptions", - "organizations_url": "https://api.github.com/users/chaoss/orgs", - "repos_url": "https://api.github.com/users/chaoss/repos", - "events_url": "https://api.github.com/users/chaoss/events{/privacy}", - "received_events_url": "https://api.github.com/users/chaoss/received_events", - "type": "Organization", - "site_admin": false - }, -'; -COMMENT ON TABLE "augur_data"."pull_request_meta" IS 'Pull requests contain referencing metadata. There are a few columns that are discrete. There are also head and base designations for the repo on each side of the pull request. Similar functions exist in GitLab, though the language here is based on GitHub. The JSON Being adapted to as of the development of this schema is here: "base": { "label": "chaoss:dev", "ref": "dev", "sha": "dc6c6f3947f7dc84ecba3d8bda641ef786e7027d", "user": { "login": "chaoss", "id": 29740296, "node_id": "MDEyOk9yZ2FuaXphdGlvbjI5NzQwMjk2", "avatar_url": "https://avatars2.githubusercontent.com/u/29740296?v=4", "gravatar_id": "", "url": "https://api.github.com/users/chaoss", "html_url": "https://github.com/chaoss", "followers_url": "https://api.github.com/users/chaoss/followers", "following_url": "https://api.github.com/users/chaoss/following{/other_user}", "gists_url": "https://api.github.com/users/chaoss/gists{/gist_id}", "starred_url": "https://api.github.com/users/chaoss/starred{/owner}{/repo}", "subscriptions_url": "https://api.github.com/users/chaoss/subscriptions", "organizations_url": "https://api.github.com/users/chaoss/orgs", "repos_url": "https://api.github.com/users/chaoss/repos", "events_url": "https://api.github.com/users/chaoss/events{/privacy}", "received_events_url": "https://api.github.com/users/chaoss/received_events", "type": "Organization", "site_admin": false }, "repo": { "id": 78134122, "node_id": "MDEwOlJlcG9zaXRvcnk3ODEzNDEyMg==", "name": "augur", "full_name": "chaoss/augur", "private": false, "owner": { "login": "chaoss", "id": 29740296, "node_id": "MDEyOk9yZ2FuaXphdGlvbjI5NzQwMjk2", "avatar_url": "https://avatars2.githubusercontent.com/u/29740296?v=4", "gravatar_id": "", "url": "https://api.github.com/users/chaoss", "html_url": "https://github.com/chaoss", "followers_url": "https://api.github.com/users/chaoss/followers", "following_url": "https://api.github.com/users/chaoss/following{/other_user}", "gists_url": "https://api.github.com/users/chaoss/gists{/gist_id}", "starred_url": "https://api.github.com/users/chaoss/starred{/owner}{/repo}", "subscriptions_url": "https://api.github.com/users/chaoss/subscriptions", "organizations_url": "https://api.github.com/users/chaoss/orgs", "repos_url": "https://api.github.com/users/chaoss/repos", "events_url": "https://api.github.com/users/chaoss/events{/privacy}", "received_events_url": "https://api.github.com/users/chaoss/received_events", "type": "Organization", "site_admin": false }, '; - -CREATE TABLE IF NOT EXISTS "augur_data"."pull_request_repo" ( - "pr_repo_id" int8 NOT NULL DEFAULT nextval('"augur_data".pull_request_repo_pr_repo_id_seq'::regclass), - "pr_repo_meta_id" int8, - "pr_repo_head_or_base" varchar COLLATE "pg_catalog"."default", - "pr_src_repo_id" int8, - "pr_src_node_id" varchar COLLATE "pg_catalog"."default", - "pr_repo_name" varchar COLLATE "pg_catalog"."default", - "pr_repo_full_name" varchar COLLATE "pg_catalog"."default", - "pr_repo_private_bool" bool, - "pr_cntrb_id" int8, - "tool_source" varchar(255) COLLATE "pg_catalog"."default", - "tool_version" varchar(255) COLLATE "pg_catalog"."default", - "data_source" varchar(255) COLLATE "pg_catalog"."default", - "data_collection_date" timestamp(0) DEFAULT CURRENT_TIMESTAMP, - CONSTRAINT "pull_request_repo_pkey" PRIMARY KEY ("pr_repo_id") -); -ALTER TABLE IF EXISTS "augur_data"."pull_request_repo" OWNER TO "augur"; -CREATE INDEX "pr-cntrb-idx-repo" ON "augur_data"."pull_request_repo" USING btree ( - "pr_cntrb_id" "pg_catalog"."int8_ops" ASC NULLS LAST -); -COMMENT ON COLUMN "augur_data"."pull_request_repo"."pr_repo_head_or_base" IS 'For ease of validation checking, we should determine if the repository referenced is the head or base of the pull request. Each pull request should have one and only one of these, which is not enforcable easily in the database.'; -COMMENT ON TABLE "augur_data"."pull_request_repo" IS 'This table is for storing information about forks that exist as part of a pull request. Generally we do not want to track these like ordinary repositories. '; - -CREATE TABLE IF NOT EXISTS "augur_data"."pull_request_reviewers" ( - "pr_reviewer_map_id" int8 NOT NULL DEFAULT nextval('"augur_data".pull_request_reviewers_pr_reviewer_map_id_seq'::regclass), - "pull_request_id" int8, - "cntrb_id" int8, - "tool_source" varchar(255) COLLATE "pg_catalog"."default", - "tool_version" varchar(255) COLLATE "pg_catalog"."default", - "data_source" varchar(255) COLLATE "pg_catalog"."default", - "data_collection_date" timestamp(0) DEFAULT CURRENT_TIMESTAMP, - CONSTRAINT "pull_request_reviewers_pkey" PRIMARY KEY ("pr_reviewer_map_id") -); -ALTER TABLE IF EXISTS "augur_data"."pull_request_reviewers" OWNER TO "augur"; -CREATE INDEX "pr-reviewers-cntrb-idx1" ON "augur_data"."pull_request_reviewers" USING btree ( - "cntrb_id" "pg_catalog"."int8_ops" ASC NULLS LAST -); - -CREATE TABLE IF NOT EXISTS "augur_data"."pull_request_teams" ( - "pr_team_id" int8 NOT NULL DEFAULT nextval('"augur_data".pull_request_teams_pr_team_id_seq'::regclass), - "pull_request_id" int8, - "pr_src_team_id" int8, - "pr_src_team_node" varchar COLLATE "pg_catalog"."default", - "pr_src_team_url" varchar COLLATE "pg_catalog"."default", - "pr_team_name" varchar COLLATE "pg_catalog"."default", - "pr_team_slug" varchar COLLATE "pg_catalog"."default", - "pr_team_description" varchar COLLATE "pg_catalog"."default", - "pr_team_privacy" varchar COLLATE "pg_catalog"."default", - "pr_team_permission" varchar COLLATE "pg_catalog"."default", - "pr_team_src_members_url" varchar COLLATE "pg_catalog"."default", - "pr_team_src_repositories_url" varchar COLLATE "pg_catalog"."default", - "pr_team_parent_id" int8, - "tool_source" varchar(255) COLLATE "pg_catalog"."default", - "tool_version" varchar(255) COLLATE "pg_catalog"."default", - "data_source" varchar(255) COLLATE "pg_catalog"."default", - "data_collection_date" timestamp(0) DEFAULT CURRENT_TIMESTAMP, - CONSTRAINT "pull_request_teams_pkey" PRIMARY KEY ("pr_team_id") -); -ALTER TABLE IF EXISTS "augur_data"."pull_request_teams" OWNER TO "augur"; - -CREATE TABLE IF NOT EXISTS "augur_data"."pull_requests" ( - "pull_request_id" int8 NOT NULL DEFAULT nextval('"augur_data".pull_requests_pull_request_id_seq'::regclass), - "pr_url" varchar COLLATE "pg_catalog"."default", - "pr_src_id" int8, - "pr_src_node_id" varchar COLLATE "pg_catalog"."default", - "pr_html_url" varchar COLLATE "pg_catalog"."default", - "pr_diff_url" varchar COLLATE "pg_catalog"."default", - "pr_patch_url" varchar COLLATE "pg_catalog"."default", - "pr_issue_url" varchar COLLATE "pg_catalog"."default", - "pr_augur_issue_id" int8, - "pr_src_number" int8, - "pr_src_state" varchar COLLATE "pg_catalog"."default", - "pr_src_locked" bool, - "pr_src_title" varchar COLLATE "pg_catalog"."default", - "pr_augur_contributor_id" int8, - "pr_body" text COLLATE "pg_catalog"."default", - "pr_created_at" timestamp(0), - "pr_updated_at" timestamp(0), - "pr_closed_at" timestamp(0), - "pr_merged_at" timestamp(0), - "pr_merge_commit_sha" varchar COLLATE "pg_catalog"."default", - "pr_teams" int8, - "pr_milestone" varchar COLLATE "pg_catalog"."default", - "pr_commits_url" varchar COLLATE "pg_catalog"."default", - "pr_review_comments_url" varchar COLLATE "pg_catalog"."default", - "pr_review_comment_url" varchar COLLATE "pg_catalog"."default", - "pr_comments_url" varchar COLLATE "pg_catalog"."default", - "pr_statuses_url" varchar COLLATE "pg_catalog"."default", - "pr_meta_head_id" int8, - "pr_meta_base_id" int8, - "pr_src_issue_url" varchar COLLATE "pg_catalog"."default", - "pr_src_comments_url" varchar COLLATE "pg_catalog"."default", - "pr_src_review_comments_url" varchar COLLATE "pg_catalog"."default", - "pr_src_commits_url" varchar COLLATE "pg_catalog"."default", - "pr_src_statuses_url" varchar COLLATE "pg_catalog"."default", - "pr_src_author_association" varchar COLLATE "pg_catalog"."default", - "tool_source" varchar(255) COLLATE "pg_catalog"."default", - "tool_version" varchar(255) COLLATE "pg_catalog"."default", - "data_source" varchar(255) COLLATE "pg_catalog"."default", - "data_collection_date" timestamp(0) DEFAULT CURRENT_TIMESTAMP, - "repo_id" int8, - CONSTRAINT "pull_requests_pkey" PRIMARY KEY ("pull_request_id") -); -ALTER TABLE IF EXISTS "augur_data"."pull_requests" OWNER TO "augur"; -CREATE INDEX "id_node" ON "augur_data"."pull_requests" USING btree ( - "pr_src_id" "pg_catalog"."int8_ops" DESC NULLS FIRST, - "pr_src_node_id" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" DESC NULLS LAST -); -COMMENT ON COLUMN "augur_data"."pull_requests"."pr_src_id" IS 'The pr_src_id is unique across all of github.'; -COMMENT ON COLUMN "augur_data"."pull_requests"."pr_augur_issue_id" IS 'This is to link to the augur stored related issue'; -COMMENT ON COLUMN "augur_data"."pull_requests"."pr_src_number" IS 'The pr_src_number is unique within a repository.'; -COMMENT ON COLUMN "augur_data"."pull_requests"."pr_augur_contributor_id" IS 'This is to link to the augur contributor record. '; -COMMENT ON COLUMN "augur_data"."pull_requests"."pr_teams" IS 'One to many with pull request teams. '; -COMMENT ON COLUMN "augur_data"."pull_requests"."pr_review_comment_url" IS 'This is a field with limited utility. It does expose how to access a specific comment if needed with parameters. If the source changes URL structure, it may be useful'; -COMMENT ON COLUMN "augur_data"."pull_requests"."pr_meta_head_id" IS 'The metadata for the head repo that links to the pull_request_meta table. '; -COMMENT ON COLUMN "augur_data"."pull_requests"."pr_meta_base_id" IS 'The metadata for the base repo that links to the pull_request_meta table. '; - -CREATE TABLE IF NOT EXISTS "augur_data"."releases" ( - "release_id" char(64) COLLATE "pg_catalog"."default" NOT NULL DEFAULT nextval('"augur_data".releases_release_id_seq'::regclass), - "repo_id" int8 NOT NULL, - "release_name" varchar(255) COLLATE "pg_catalog"."default", - "release_description" varchar COLLATE "pg_catalog"."default", - "release_author" varchar(255) COLLATE "pg_catalog"."default", - "release_created_at" timestamp(6), - "release_published_at" timestamp(6), - "release_updated_at" timestamp(6), - "release_is_draft" bool, - "release_is_prerelease" bool, - "release_tag_name" varchar(255) COLLATE "pg_catalog"."default", - "release_url" varchar(255) COLLATE "pg_catalog"."default", - "tool_source" varchar(255) COLLATE "pg_catalog"."default", - "tool_version" varchar(255) COLLATE "pg_catalog"."default", - "data_source" varchar(255) COLLATE "pg_catalog"."default", - "data_collection_date" timestamp(6) DEFAULT CURRENT_TIMESTAMP, - "tag_only" bool, - CONSTRAINT "releases_pkey" PRIMARY KEY ("release_id") -); -ALTER TABLE IF EXISTS "augur_data"."releases" OWNER TO "augur"; - -CREATE TABLE IF NOT EXISTS "augur_data"."repo" ( - "repo_id" int8 NOT NULL DEFAULT nextval('"augur_data".repo_repo_id_seq'::regclass), - "repo_group_id" int8 NOT NULL, - "repo_git" varchar COLLATE "pg_catalog"."default" NOT NULL, - "repo_path" varchar(256) COLLATE "pg_catalog"."default" DEFAULT 'NULL'::character varying, - "repo_name" varchar COLLATE "pg_catalog"."default" DEFAULT 'NULL'::character varying, - "repo_added" timestamp(0) NOT NULL DEFAULT CURRENT_TIMESTAMP, - "repo_status" varchar(32) COLLATE "pg_catalog"."default" NOT NULL DEFAULT 'New'::character varying, - "repo_type" varchar COLLATE "pg_catalog"."default" DEFAULT ''::character varying, - "url" varchar(255) COLLATE "pg_catalog"."default", - "owner_id" int4, - "description" varchar COLLATE "pg_catalog"."default", - "primary_language" varchar(255) COLLATE "pg_catalog"."default", - "created_at" varchar(255) COLLATE "pg_catalog"."default", - "forked_from" varchar COLLATE "pg_catalog"."default", - "updated_at" timestamp(0), - "tool_source" varchar(255) COLLATE "pg_catalog"."default", - "tool_version" varchar(255) COLLATE "pg_catalog"."default", - "data_source" varchar(255) COLLATE "pg_catalog"."default", - "data_collection_date" timestamp(0), - "repo_archived" int4, - "repo_archived_date_collected" timestamptz(0), - CONSTRAINT "repounique" PRIMARY KEY ("repo_id") -); -ALTER TABLE IF EXISTS "augur_data"."repo" OWNER TO "augur"; -CREATE INDEX "forked" ON "augur_data"."repo" USING btree ( - "forked_from" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST -); -CREATE INDEX "repogitindexrep" ON "augur_data"."repo" USING btree ( - "repo_git" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST -); -CREATE INDEX "reponameindex" ON "augur_data"."repo" USING hash ( - "repo_name" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" -); -CREATE INDEX "reponameindexbtree" ON "augur_data"."repo" USING btree ( - "repo_name" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST -); -CREATE INDEX "rggrouponrepoindex" ON "augur_data"."repo" USING btree ( - "repo_group_id" "pg_catalog"."int8_ops" ASC NULLS LAST -); -CREATE UNIQUE INDEX "therepo" ON "augur_data"."repo" USING btree ( - "repo_id" "pg_catalog"."int8_ops" ASC NULLS LAST -); -COMMENT ON COLUMN "augur_data"."repo"."repo_type" IS 'This field is intended to indicate if the repository is the "main instance" of a repository in cases where implementations choose to add the same repository to more than one repository group. In cases where the repository group is of rg_type Github Organization then this repo_type should be "primary". In other cases the repo_type should probably be "user created". We made this a varchar in order to hold open the possibility that there are additional repo_types we have not thought about. '; -COMMENT ON TABLE "augur_data"."repo" IS 'This table is a combination of the columns in Facade’s repo table and GHTorrent’s projects table. '; - -CREATE TABLE IF NOT EXISTS "augur_data"."repo_badging" ( - "badge_collection_id" int8 NOT NULL DEFAULT nextval('"augur_data".repo_badging_badge_collection_id_seq'::regclass), - "repo_id" int8, - "created_at" timestamp(0) DEFAULT CURRENT_TIMESTAMP, - "tool_source" varchar(255) COLLATE "pg_catalog"."default", - "tool_version" varchar(255) COLLATE "pg_catalog"."default", - "data_source" varchar(255) COLLATE "pg_catalog"."default", - "data_collection_date" timestamp(0) DEFAULT CURRENT_TIMESTAMP, - "data" jsonb, - CONSTRAINT "repo_badging_pkey" PRIMARY KEY ("badge_collection_id") -); -ALTER TABLE IF EXISTS "augur_data"."repo_badging" OWNER TO "augur"; -COMMENT ON TABLE "augur_data"."repo_badging" IS 'This will be collected from the LF’s Badging API -https://bestpractices.coreinfrastructure.org/projects.json?pq=https%3A%2F%2Fgithub.com%2Fchaoss%2Faugur -'; - -CREATE TABLE IF NOT EXISTS "augur_data"."repo_cluster_messages" ( - "msg_cluster_id" int8 NOT NULL DEFAULT nextval('"augur_data".repo_cluster_messages_msg_cluster_id_seq'::regclass), - "repo_id" int8, - "cluster_content" int4, - "cluster_mechanism" int4, - "tool_source" varchar COLLATE "pg_catalog"."default", - "tool_version" varchar COLLATE "pg_catalog"."default", - "data_source" varchar COLLATE "pg_catalog"."default", - "data_collection_date" timestamp(0) DEFAULT CURRENT_TIMESTAMP, - CONSTRAINT "repo_cluster_messages_pkey" PRIMARY KEY ("msg_cluster_id") -); -ALTER TABLE IF EXISTS "augur_data"."repo_cluster_messages" OWNER TO "augur"; - -CREATE TABLE IF NOT EXISTS "augur_data"."repo_group_insights" ( - "rgi_id" int8 NOT NULL DEFAULT nextval('"augur_data".repo_group_insights_rgi_id_seq'::regclass), - "repo_group_id" int8, - "rgi_metric" varchar COLLATE "pg_catalog"."default", - "rgi_value" varchar COLLATE "pg_catalog"."default", - "cms_id" int8, - "rgi_fresh" bool, - "tool_source" varchar COLLATE "pg_catalog"."default", - "tool_version" varchar COLLATE "pg_catalog"."default", - "data_source" varchar COLLATE "pg_catalog"."default", - "data_collection_date" timestamp(0) DEFAULT CURRENT_TIMESTAMP, - CONSTRAINT "repo_group_insights_pkey" PRIMARY KEY ("rgi_id") -); -ALTER TABLE IF EXISTS "augur_data"."repo_group_insights" OWNER TO "augur"; -COMMENT ON COLUMN "augur_data"."repo_group_insights"."rgi_fresh" IS 'false if the date is before the statistic that triggered the insight, true if after. This allows us to automatically display only "fresh insights" and avoid displaying "stale insights". The insight worker will populate this table. '; -COMMENT ON TABLE "augur_data"."repo_group_insights" IS 'This table is output from an analytical worker inside of Augur. It runs through the different metrics on a REPOSITORY_GROUP and identifies the five to ten most “interesting” metrics as defined by some kind of delta or other factor. The algorithm is going to evolve. - -Worker Design Notes: The idea is that the "insight worker" will scan through a bunch of active metrics or "synthetic metrics" to list the most important insights. '; - -CREATE TABLE IF NOT EXISTS "augur_data"."repo_groups" ( - "repo_group_id" int8 NOT NULL DEFAULT nextval('"augur_data".repo_groups_repo_group_id_seq'::regclass), - "rg_name" varchar COLLATE "pg_catalog"."default" NOT NULL, - "rg_description" varchar COLLATE "pg_catalog"."default" DEFAULT 'NULL'::character varying, - "rg_website" varchar(128) COLLATE "pg_catalog"."default" DEFAULT 'NULL'::character varying, - "rg_recache" int2 DEFAULT 1, - "rg_last_modified" timestamp(0) NOT NULL DEFAULT CURRENT_TIMESTAMP, - "rg_type" varchar COLLATE "pg_catalog"."default", - "tool_source" varchar(255) COLLATE "pg_catalog"."default", - "tool_version" varchar(255) COLLATE "pg_catalog"."default", - "data_source" varchar(255) COLLATE "pg_catalog"."default", - "data_collection_date" timestamp(0), - CONSTRAINT "rgid" PRIMARY KEY ("repo_group_id") -); -ALTER TABLE IF EXISTS "augur_data"."repo_groups" OWNER TO "augur"; -CREATE UNIQUE INDEX "rgidm" ON "augur_data"."repo_groups" USING btree ( - "repo_group_id" "pg_catalog"."int8_ops" ASC NULLS LAST -); -CREATE INDEX "rgnameindex" ON "augur_data"."repo_groups" USING btree ( - "rg_name" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST -); -COMMENT ON TABLE "augur_data"."repo_groups" IS 'rg_type is intended to be either a GitHub Organization or a User Created Repo Group. '; - -CREATE TABLE IF NOT EXISTS "augur_data"."repo_groups_list_serve" ( - "rgls_id" int8 NOT NULL DEFAULT nextval('"augur_data".repo_groups_list_serve_rgls_id_seq'::regclass), - "repo_group_id" int8 NOT NULL, - "rgls_name" varchar(255) COLLATE "pg_catalog"."default", - "rgls_description" varchar(3000) COLLATE "pg_catalog"."default", - "rgls_sponsor" varchar(255) COLLATE "pg_catalog"."default", - "rgls_email" varchar(255) COLLATE "pg_catalog"."default", - "tool_source" varchar(255) COLLATE "pg_catalog"."default", - "tool_version" varchar(255) COLLATE "pg_catalog"."default", - "data_source" varchar(255) COLLATE "pg_catalog"."default", - "data_collection_date" timestamp(0), - CONSTRAINT "repo_groups_list_serve_pkey" PRIMARY KEY ("rgls_id"), - CONSTRAINT "rglistserve" UNIQUE ("rgls_id", "repo_group_id") -); -ALTER TABLE IF EXISTS "augur_data"."repo_groups_list_serve" OWNER TO "augur"; -CREATE UNIQUE INDEX "lister" ON "augur_data"."repo_groups_list_serve" USING btree ( - "rgls_id" "pg_catalog"."int8_ops" ASC NULLS LAST, - "repo_group_id" "pg_catalog"."int8_ops" ASC NULLS LAST -); - -CREATE TABLE IF NOT EXISTS "augur_data"."repo_info" ( - "repo_info_id" int8 NOT NULL DEFAULT nextval('"augur_data".repo_info_repo_info_id_seq'::regclass), - "repo_id" int8 NOT NULL, - "last_updated" timestamp(0) DEFAULT NULL::timestamp without time zone, - "issues_enabled" varchar(255) COLLATE "pg_catalog"."default" DEFAULT NULL::character varying, - "open_issues" int4, - "pull_requests_enabled" varchar(255) COLLATE "pg_catalog"."default" DEFAULT NULL::character varying, - "wiki_enabled" varchar(255) COLLATE "pg_catalog"."default" DEFAULT NULL::character varying, - "pages_enabled" varchar(255) COLLATE "pg_catalog"."default" DEFAULT NULL::character varying, - "fork_count" int4, - "default_branch" varchar(255) COLLATE "pg_catalog"."default" DEFAULT NULL::character varying, - "watchers_count" int4, - "UUID" int4, - "license" varchar(255) COLLATE "pg_catalog"."default" DEFAULT NULL::character varying, - "stars_count" int4, - "committers_count" int4, - "issue_contributors_count" varchar(255) COLLATE "pg_catalog"."default", - "changelog_file" varchar(255) COLLATE "pg_catalog"."default" DEFAULT NULL::character varying, - "contributing_file" varchar(255) COLLATE "pg_catalog"."default" DEFAULT NULL::character varying, - "license_file" varchar(255) COLLATE "pg_catalog"."default" DEFAULT NULL::character varying, - "code_of_conduct_file" varchar(255) COLLATE "pg_catalog"."default" DEFAULT NULL::character varying, - "security_issue_file" varchar(255) COLLATE "pg_catalog"."default" DEFAULT NULL::character varying, - "security_audit_file" varchar(255) COLLATE "pg_catalog"."default" DEFAULT NULL::character varying, - "status" varchar(255) COLLATE "pg_catalog"."default" DEFAULT NULL::character varying, - "keywords" varchar(255) COLLATE "pg_catalog"."default" DEFAULT NULL::character varying, - "tool_source" varchar(255) COLLATE "pg_catalog"."default", - "tool_version" varchar(255) COLLATE "pg_catalog"."default", - "data_source" varchar(255) COLLATE "pg_catalog"."default", - "data_collection_date" timestamp(0) DEFAULT CURRENT_TIMESTAMP, - "commit_count" int8, - "issues_count" int8, - "issues_closed" int8, - "pull_request_count" int8, - "pull_requests_open" int8, - "pull_requests_closed" int8, - "pull_requests_merged" int8, - CONSTRAINT "repo_info_pkey" PRIMARY KEY ("repo_info_id") -); -ALTER TABLE IF EXISTS "augur_data"."repo_info" OWNER TO "augur"; - -CREATE TABLE IF NOT EXISTS "augur_data"."repo_insights" ( - "ri_id" int8 NOT NULL DEFAULT nextval('"augur_data".repo_insights_ri_id_seq'::regclass), - "repo_id" int8, - "ri_metric" varchar COLLATE "pg_catalog"."default", - "ri_value" varchar(255) COLLATE "pg_catalog"."default", - "ri_date" timestamp(0), - "ri_fresh" bool, - "tool_source" varchar COLLATE "pg_catalog"."default", - "tool_version" varchar COLLATE "pg_catalog"."default", - "data_source" varchar COLLATE "pg_catalog"."default", - "data_collection_date" timestamp(0) DEFAULT CURRENT_TIMESTAMP, - "ri_score" numeric, - "ri_field" varchar(255) COLLATE "pg_catalog"."default", - "ri_detection_method" varchar(255) COLLATE "pg_catalog"."default", - CONSTRAINT "repo_insights_pkey" PRIMARY KEY ("ri_id") -); -ALTER TABLE IF EXISTS "augur_data"."repo_insights" OWNER TO "augur"; -COMMENT ON COLUMN "augur_data"."repo_insights"."ri_fresh" IS 'false if the date is before the statistic that triggered the insight, true if after. This allows us to automatically display only "fresh insights" and avoid displaying "stale insights". The insight worker will populate this table. '; -COMMENT ON TABLE "augur_data"."repo_insights" IS 'This table is output from an analytical worker inside of Augur. It runs through the different metrics on a repository and identifies the five to ten most “interesting” metrics as defined by some kind of delta or other factor. The algorithm is going to evolve. - -Worker Design Notes: The idea is that the "insight worker" will scan through a bunch of active metrics or "synthetic metrics" to list the most important insights. '; - -CREATE TABLE IF NOT EXISTS "augur_data"."repo_insights_records" ( - "ri_id" int8 NOT NULL DEFAULT nextval('"augur_data".repo_insights_records_ri_id_seq'::regclass), - "repo_id" int8, - "ri_metric" varchar COLLATE "pg_catalog"."default", - "ri_field" varchar COLLATE "pg_catalog"."default", - "ri_value" varchar COLLATE "pg_catalog"."default", - "ri_date" timestamp(6), - "ri_score" float8, - "ri_detection_method" varchar COLLATE "pg_catalog"."default", - "tool_source" varchar COLLATE "pg_catalog"."default", - "tool_version" varchar COLLATE "pg_catalog"."default", - "data_source" varchar COLLATE "pg_catalog"."default", - "data_collection_date" timestamp(6) DEFAULT CURRENT_TIMESTAMP, - CONSTRAINT "repo_insights_records_pkey" PRIMARY KEY ("ri_id") -); -ALTER TABLE IF EXISTS "augur_data"."repo_insights_records" OWNER TO "augur"; -CREATE INDEX "dater" ON "augur_data"."repo_insights_records" USING btree ( - "ri_date" "pg_catalog"."timestamp_ops" ASC NULLS LAST -); -COMMENT ON COLUMN "augur_data"."repo_insights_records"."ri_id" IS 'Primary key. '; -COMMENT ON COLUMN "augur_data"."repo_insights_records"."repo_id" IS 'Refers to repo table primary key. Will have a foreign key'; -COMMENT ON COLUMN "augur_data"."repo_insights_records"."ri_metric" IS 'The metric endpoint'; -COMMENT ON COLUMN "augur_data"."repo_insights_records"."ri_field" IS 'The field in the metric endpoint'; -COMMENT ON COLUMN "augur_data"."repo_insights_records"."ri_value" IS 'The value of the endpoint in ri_field'; -COMMENT ON COLUMN "augur_data"."repo_insights_records"."ri_date" IS 'The date the insight is for; in other words, some anomaly occurred on this date. '; -COMMENT ON COLUMN "augur_data"."repo_insights_records"."ri_score" IS 'A Score, derived from the algorithm used. '; -COMMENT ON COLUMN "augur_data"."repo_insights_records"."ri_detection_method" IS 'A confidence interval or other expression of the type of threshold and the value of a threshold met in order for it to be "an insight". Example. "95% confidence interval". '; -COMMENT ON COLUMN "augur_data"."repo_insights_records"."tool_source" IS 'Standard Augur Metadata'; -COMMENT ON COLUMN "augur_data"."repo_insights_records"."tool_version" IS 'Standard Augur Metadata'; -COMMENT ON COLUMN "augur_data"."repo_insights_records"."data_source" IS 'Standard Augur Metadata'; -COMMENT ON COLUMN "augur_data"."repo_insights_records"."data_collection_date" IS 'Standard Augur Metadata'; - -CREATE TABLE IF NOT EXISTS "augur_data"."repo_labor" ( - "repo_labor_id" int8 NOT NULL DEFAULT nextval('"augur_data".repo_labor_repo_labor_id_seq'::regclass), - "repo_id" int8, - "repo_clone_date" timestamp(0), - "rl_analysis_date" timestamp(0), - "programming_language" varchar(255) COLLATE "pg_catalog"."default" DEFAULT NULL::character varying, - "file_path" varchar(500) COLLATE "pg_catalog"."default" DEFAULT NULL::character varying, - "file_name" varchar(255) COLLATE "pg_catalog"."default" DEFAULT NULL::character varying, - "total_lines" int4, - "code_lines" int4, - "comment_lines" int4, - "blank_lines" int4, - "code_complexity" int4, - "repo_url" varchar(500) COLLATE "pg_catalog"."default" DEFAULT NULL::character varying, - "tool_source" varchar(255) COLLATE "pg_catalog"."default", - "tool_version" varchar(255) COLLATE "pg_catalog"."default", - "data_source" varchar(255) COLLATE "pg_catalog"."default", - "data_collection_date" timestamp(0), - CONSTRAINT "repo_labor_pkey" PRIMARY KEY ("repo_labor_id") -); -ALTER TABLE IF EXISTS "augur_data"."repo_labor" OWNER TO "augur"; -COMMENT ON COLUMN "augur_data"."repo_labor"."repo_url" IS 'This is a convenience column to simplify analysis against external datasets'; -COMMENT ON TABLE "augur_data"."repo_labor" IS 'repo_labor is a derivative of tables used to store scc code and complexity counting statistics that are inputs to labor analysis, which are components of CHAOSS value metric calculations. '; - -CREATE TABLE IF NOT EXISTS "augur_data"."repo_meta" ( - "repo_id" int8 NOT NULL, - "rmeta_id" int8 NOT NULL DEFAULT nextval('"augur_data".repo_meta_rmeta_id_seq'::regclass), - "rmeta_name" varchar(255) COLLATE "pg_catalog"."default", - "rmeta_value" varchar(255) COLLATE "pg_catalog"."default" DEFAULT 0, - "tool_source" varchar(255) COLLATE "pg_catalog"."default", - "tool_version" varchar(255) COLLATE "pg_catalog"."default", - "data_source" varchar(255) COLLATE "pg_catalog"."default", - "data_collection_date" timestamp(0), - CONSTRAINT "repo_meta_pkey" PRIMARY KEY ("rmeta_id", "repo_id") -); -ALTER TABLE IF EXISTS "augur_data"."repo_meta" OWNER TO "augur"; -COMMENT ON TABLE "augur_data"."repo_meta" IS 'Project Languages'; - -CREATE TABLE IF NOT EXISTS "augur_data"."repo_sbom_scans" ( - "rsb_id" int8 NOT NULL DEFAULT nextval('"augur_data".repo_sbom_scans_rsb_id_seq'::regclass), - "repo_id" int4, - "sbom_scan" json, - CONSTRAINT "repo_sbom_scans_pkey" PRIMARY KEY ("rsb_id") -); -ALTER TABLE IF EXISTS "augur_data"."repo_sbom_scans" OWNER TO "augur"; - -CREATE TABLE IF NOT EXISTS "augur_data"."repo_stats" ( - "repo_id" int8 NOT NULL, - "rstat_id" int8 NOT NULL DEFAULT nextval('"augur_data".repo_stats_rstat_id_seq'::regclass), - "rstat_name" varchar(400) COLLATE "pg_catalog"."default", - "rstat_value" int8, - "tool_source" varchar(255) COLLATE "pg_catalog"."default", - "tool_version" varchar(255) COLLATE "pg_catalog"."default", - "data_source" varchar(255) COLLATE "pg_catalog"."default", - "data_collection_date" timestamp(0), - CONSTRAINT "repo_stats_pkey" PRIMARY KEY ("rstat_id", "repo_id") -); -ALTER TABLE IF EXISTS "augur_data"."repo_stats" OWNER TO "augur"; -COMMENT ON TABLE "augur_data"."repo_stats" IS 'Project Watchers'; - -CREATE TABLE IF NOT EXISTS "augur_data"."repo_test_coverage" ( - "repo_id" int8 NOT NULL DEFAULT nextval('"augur_data".repo_test_coverage_repo_id_seq'::regclass), - "repo_clone_date" timestamp(0), - "rtc_analysis_date" timestamp(0), - "programming_language" varchar COLLATE "pg_catalog"."default", - "file_path" varchar COLLATE "pg_catalog"."default", - "file_name" varchar COLLATE "pg_catalog"."default", - "testing_tool" varchar COLLATE "pg_catalog"."default", - "file_statement_count" int8, - "file_subroutine_count" int8, - "file_statements_tested" int8, - "file_subroutines_tested" int8, - "tool_source" varchar COLLATE "pg_catalog"."default", - "tool_version" varchar COLLATE "pg_catalog"."default", - "data_source" varchar COLLATE "pg_catalog"."default", - "data_collection_date" timestamp(0) DEFAULT CURRENT_TIMESTAMP, - CONSTRAINT "repo_test_coverage_pkey" PRIMARY KEY ("repo_id") -); -ALTER TABLE IF EXISTS "augur_data"."repo_test_coverage" OWNER TO "augur"; - -CREATE TABLE IF NOT EXISTS "augur_data"."repo_topic" ( - "repo_topic_id" int8 NOT NULL DEFAULT nextval('"augur_data".repo_topic_repo_topic_id_seq'::regclass), - "repo_id" int4, - "topic_id" int4, - "topic_prob" float8, - "tool_source" varchar COLLATE "pg_catalog"."default", - "tool_version" varchar COLLATE "pg_catalog"."default", - "data_source" varchar COLLATE "pg_catalog"."default", - "data_collection_date" timestamp(0) DEFAULT CURRENT_TIMESTAMP, - CONSTRAINT "repo_topic_pkey" PRIMARY KEY ("repo_topic_id") -); -ALTER TABLE IF EXISTS "augur_data"."repo_topic" OWNER TO "augur"; - -CREATE TABLE IF NOT EXISTS "augur_data"."repos_fetch_log" ( - "repos_id" int4 NOT NULL, - "status" varchar(128) COLLATE "pg_catalog"."default" NOT NULL, - "date" timestamp(0) NOT NULL DEFAULT CURRENT_TIMESTAMP -); -ALTER TABLE IF EXISTS "augur_data"."repos_fetch_log" OWNER TO "augur"; -CREATE INDEX "repos_id,status" ON "augur_data"."repos_fetch_log" USING btree ( - "repos_id" "pg_catalog"."int4_ops" ASC NULLS LAST, - "status" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST -); -CREATE INDEX "repos_id,statusops" ON "augur_data"."repos_fetch_log" USING btree ( - "repos_id" "pg_catalog"."int4_ops" ASC NULLS LAST, - "status" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST -); - -CREATE TABLE IF NOT EXISTS "augur_data"."settings" ( - "id" int4 NOT NULL, - "setting" varchar(32) COLLATE "pg_catalog"."default" NOT NULL, - "value" varchar COLLATE "pg_catalog"."default" NOT NULL, - "last_modified" timestamp(0) NOT NULL DEFAULT CURRENT_TIMESTAMP, - CONSTRAINT "settings_pkey" PRIMARY KEY ("id") -); -ALTER TABLE IF EXISTS "augur_data"."settings" OWNER TO "augur"; - -CREATE TABLE IF NOT EXISTS "augur_data"."topic_words" ( - "topic_words_id" int8 NOT NULL DEFAULT nextval('"augur_data".topic_words_topic_words_id_seq'::regclass), - "topic_id" int8, - "word" varchar COLLATE "pg_catalog"."default", - "word_prob" float8, - "tool_source" varchar COLLATE "pg_catalog"."default", - "tool_version" varchar COLLATE "pg_catalog"."default", - "data_source" varchar COLLATE "pg_catalog"."default", - "data_collection_date" timestamp(0) DEFAULT CURRENT_TIMESTAMP, - CONSTRAINT "topic_words_pkey" PRIMARY KEY ("topic_words_id") -); -ALTER TABLE IF EXISTS "augur_data"."topic_words" OWNER TO "augur"; - -CREATE TABLE IF NOT EXISTS "augur_data"."unknown_cache" ( - "type" varchar(10) COLLATE "pg_catalog"."default" NOT NULL, - "repo_group_id" int4 NOT NULL, - "email" varchar(128) COLLATE "pg_catalog"."default" NOT NULL, - "domain" varchar(128) COLLATE "pg_catalog"."default" DEFAULT 'NULL'::character varying, - "added" int8 NOT NULL, - "tool_source" varchar(255) COLLATE "pg_catalog"."default", - "tool_version" varchar(255) COLLATE "pg_catalog"."default", - "data_source" varchar(255) COLLATE "pg_catalog"."default", - "data_collection_date" timestamp(0) DEFAULT CURRENT_TIMESTAMP -); -ALTER TABLE IF EXISTS "augur_data"."unknown_cache" OWNER TO "augur"; -CREATE INDEX "type,projects_id" ON "augur_data"."unknown_cache" USING btree ( - "type" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST, - "repo_group_id" "pg_catalog"."int4_ops" ASC NULLS LAST -); - -CREATE TABLE IF NOT EXISTS "augur_data"."utility_log" ( - "id" int8 NOT NULL DEFAULT nextval('"augur_data".utility_log_id_seq1'::regclass), - "level" varchar(8) COLLATE "pg_catalog"."default" NOT NULL, - "status" varchar COLLATE "pg_catalog"."default" NOT NULL, - "attempted" timestamp(0) NOT NULL DEFAULT CURRENT_TIMESTAMP, - CONSTRAINT "utility_log_pkey" PRIMARY KEY ("id") -); -ALTER TABLE IF EXISTS "augur_data"."utility_log" OWNER TO "augur"; - -CREATE TABLE IF NOT EXISTS "augur_data"."working_commits" ( - "repos_id" int4 NOT NULL, - "working_commit" varchar(40) COLLATE "pg_catalog"."default" DEFAULT 'NULL'::character varying -); -ALTER TABLE IF EXISTS "augur_data"."working_commits" OWNER TO "augur"; - -CREATE TABLE IF NOT EXISTS "augur_operations"."all" ( - "Name" varchar COLLATE "pg_catalog"."default", - "Bytes" varchar COLLATE "pg_catalog"."default", - "Lines" varchar COLLATE "pg_catalog"."default", - "Code" varchar COLLATE "pg_catalog"."default", - "Comment" varchar COLLATE "pg_catalog"."default", - "Blank" varchar COLLATE "pg_catalog"."default", - "Complexity" varchar COLLATE "pg_catalog"."default", - "Count" varchar COLLATE "pg_catalog"."default", - "WeightedComplexity" varchar COLLATE "pg_catalog"."default", - "Files" varchar COLLATE "pg_catalog"."default" -); -ALTER TABLE IF EXISTS "augur_operations"."all" OWNER TO "augur"; - -CREATE TABLE IF NOT EXISTS "augur_operations"."augur_settings" ( - "id" int8 NOT NULL DEFAULT nextval('"augur_operations".augur_settings_id_seq'::regclass), - "setting" varchar COLLATE "pg_catalog"."default", - "value" varchar COLLATE "pg_catalog"."default", - "last_modified" timestamp(0) DEFAULT CURRENT_DATE, - CONSTRAINT "augur_settings_pkey" PRIMARY KEY ("id") -); -ALTER TABLE IF EXISTS "augur_operations"."augur_settings" OWNER TO "augur"; -COMMENT ON TABLE "augur_operations"."augur_settings" IS 'Augur settings include the schema version, and the Augur API Key as of 10/25/2020. Future augur settings may be stored in this table, which has the basic structure of a name-value pair. '; - -CREATE TABLE IF NOT EXISTS "augur_operations"."repos_fetch_log" ( - "repos_id" int4 NOT NULL, - "status" varchar(128) COLLATE "pg_catalog"."default" NOT NULL, - "date" timestamp(0) NOT NULL DEFAULT CURRENT_TIMESTAMP -); -ALTER TABLE IF EXISTS "augur_operations"."repos_fetch_log" OWNER TO "augur"; -CREATE INDEX "repos_id,statusops" ON "augur_operations"."repos_fetch_log" USING btree ( - "repos_id" "pg_catalog"."int4_ops" ASC NULLS LAST, - "status" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST -); -COMMENT ON TABLE "augur_operations"."repos_fetch_log" IS 'For future use when we move all working tables to the augur_operations schema. '; - -CREATE TABLE IF NOT EXISTS "augur_operations"."worker_history" ( - "history_id" int8 NOT NULL DEFAULT nextval('"augur_operations".gh_worker_history_history_id_seq'::regclass), - "repo_id" int8, - "worker" varchar(255) COLLATE "pg_catalog"."default" NOT NULL, - "job_model" varchar(255) COLLATE "pg_catalog"."default" NOT NULL, - "oauth_id" int4 NOT NULL, - "timestamp" timestamp(0) NOT NULL, - "status" varchar(7) COLLATE "pg_catalog"."default" NOT NULL, - "total_results" int4, - CONSTRAINT "history_pkey" PRIMARY KEY ("history_id") -); -ALTER TABLE IF EXISTS "augur_operations"."worker_history" OWNER TO "augur"; -COMMENT ON TABLE "augur_operations"."worker_history" IS 'This table stores the complete history of job execution, including success and failure. It is useful for troubleshooting. '; - -CREATE TABLE IF NOT EXISTS "augur_operations"."worker_job" ( - "job_model" varchar(255) COLLATE "pg_catalog"."default" NOT NULL, - "state" int4 NOT NULL DEFAULT 0, - "zombie_head" int4, - "since_id_str" varchar(255) COLLATE "pg_catalog"."default" NOT NULL DEFAULT '0'::character varying, - "description" varchar(255) COLLATE "pg_catalog"."default" DEFAULT 'None'::character varying, - "last_count" int4, - "last_run" timestamp(0) DEFAULT NULL::timestamp without time zone, - "analysis_state" int4 DEFAULT 0, - "oauth_id" int4 NOT NULL, - CONSTRAINT "job_pkey" PRIMARY KEY ("job_model") -); -ALTER TABLE IF EXISTS "augur_operations"."worker_job" OWNER TO "augur"; -COMMENT ON TABLE "augur_operations"."worker_job" IS 'This table stores the jobs workers collect data for. A job is found in the code, and in the augur.config.json under the construct of a “model”. '; - -CREATE TABLE IF NOT EXISTS "augur_operations"."worker_oauth" ( - "oauth_id" int8 NOT NULL DEFAULT nextval('"augur_operations".worker_oauth_oauth_id_seq'::regclass), - "name" varchar(255) COLLATE "pg_catalog"."default" NOT NULL, - "consumer_key" varchar(255) COLLATE "pg_catalog"."default" NOT NULL, - "consumer_secret" varchar(255) COLLATE "pg_catalog"."default" NOT NULL, - "access_token" varchar(255) COLLATE "pg_catalog"."default" NOT NULL, - "access_token_secret" varchar(255) COLLATE "pg_catalog"."default" NOT NULL, - "repo_directory" varchar COLLATE "pg_catalog"."default", - "platform" varchar COLLATE "pg_catalog"."default" DEFAULT 'github'::character varying, - CONSTRAINT "worker_oauth_pkey" PRIMARY KEY ("oauth_id") -); -ALTER TABLE IF EXISTS "augur_operations"."worker_oauth" OWNER TO "augur"; -COMMENT ON TABLE "augur_operations"."worker_oauth" IS 'This table stores credentials for retrieving data from platform API’s. Entries in this table must comply with the terms of service for each platform. '; - -CREATE TABLE IF NOT EXISTS "augur_operations"."worker_settings_facade" ( - "id" int4 NOT NULL, - "setting" varchar(32) COLLATE "pg_catalog"."default" NOT NULL, - "value" varchar COLLATE "pg_catalog"."default" NOT NULL, - "last_modified" timestamp(0) NOT NULL DEFAULT CURRENT_TIMESTAMP, - CONSTRAINT "settings_pkey" PRIMARY KEY ("id") -); -ALTER TABLE IF EXISTS "augur_operations"."worker_settings_facade" OWNER TO "augur"; -COMMENT ON TABLE "augur_operations"."worker_settings_facade" IS 'For future use when we move all working tables to the augur_operations schema. '; - -CREATE TABLE IF NOT EXISTS "augur_operations"."working_commits" ( - "repos_id" int4 NOT NULL, - "working_commit" varchar(40) COLLATE "pg_catalog"."default" DEFAULT 'NULL'::character varying -); -ALTER TABLE IF EXISTS "augur_operations"."working_commits" OWNER TO "augur"; -COMMENT ON TABLE "augur_operations"."working_commits" IS 'For future use when we move all working tables to the augur_operations schema. '; - -CREATE TABLE IF NOT EXISTS "spdx"."annotation_types" ( - "annotation_type_id" int4 NOT NULL DEFAULT nextval('"spdx".annotation_types_annotation_type_id_seq'::regclass), - "name" varchar(255) COLLATE "pg_catalog"."default" NOT NULL, - CONSTRAINT "annotation_types_pkey" PRIMARY KEY ("annotation_type_id"), - CONSTRAINT "uc_annotation_type_name" UNIQUE ("name") -); -ALTER TABLE IF EXISTS "spdx"."annotation_types" OWNER TO "augur"; - -CREATE TABLE IF NOT EXISTS "spdx"."annotations" ( - "annotation_id" int4 NOT NULL DEFAULT nextval('"spdx".annotations_annotation_id_seq'::regclass), - "document_id" int4 NOT NULL, - "annotation_type_id" int4 NOT NULL, - "identifier_id" int4 NOT NULL, - "creator_id" int4 NOT NULL, - "created_ts" timestamptz(6), - "comment" text COLLATE "pg_catalog"."default" NOT NULL, - CONSTRAINT "annotations_pkey" PRIMARY KEY ("annotation_id") -); -ALTER TABLE IF EXISTS "spdx"."annotations" OWNER TO "augur"; - -CREATE TABLE IF NOT EXISTS "spdx"."augur_repo_map" ( - "map_id" int4 NOT NULL DEFAULT nextval('"spdx".augur_repo_map_map_id_seq'::regclass), - "dosocs_pkg_id" int4, - "dosocs_pkg_name" text COLLATE "pg_catalog"."default", - "repo_id" int4, - "repo_path" text COLLATE "pg_catalog"."default", - CONSTRAINT "augur_repo_map_pkey" PRIMARY KEY ("map_id") -); -ALTER TABLE IF EXISTS "spdx"."augur_repo_map" OWNER TO "augur"; - -CREATE TABLE IF NOT EXISTS "spdx"."creator_types" ( - "creator_type_id" int4 NOT NULL DEFAULT nextval('"spdx".creator_types_creator_type_id_seq'::regclass), - "name" varchar(255) COLLATE "pg_catalog"."default" NOT NULL, - CONSTRAINT "creator_types_pkey" PRIMARY KEY ("creator_type_id") -); -ALTER TABLE IF EXISTS "spdx"."creator_types" OWNER TO "augur"; - -CREATE TABLE IF NOT EXISTS "spdx"."creators" ( - "creator_id" int4 NOT NULL DEFAULT nextval('"spdx".creators_creator_id_seq'::regclass), - "creator_type_id" int4 NOT NULL, - "name" varchar(255) COLLATE "pg_catalog"."default" NOT NULL, - "email" varchar(255) COLLATE "pg_catalog"."default" NOT NULL, - CONSTRAINT "creators_pkey" PRIMARY KEY ("creator_id") -); -ALTER TABLE IF EXISTS "spdx"."creators" OWNER TO "augur"; - -CREATE TABLE IF NOT EXISTS "spdx"."document_namespaces" ( - "document_namespace_id" int4 NOT NULL DEFAULT nextval('"spdx".document_namespaces_document_namespace_id_seq'::regclass), - "uri" varchar(500) COLLATE "pg_catalog"."default" NOT NULL, - CONSTRAINT "document_namespaces_pkey" PRIMARY KEY ("document_namespace_id"), - CONSTRAINT "uc_document_namespace_uri" UNIQUE ("uri") -); -ALTER TABLE IF EXISTS "spdx"."document_namespaces" OWNER TO "augur"; - -CREATE TABLE IF NOT EXISTS "spdx"."documents" ( - "document_id" int4 NOT NULL DEFAULT nextval('"spdx".documents_document_id_seq'::regclass), - "document_namespace_id" int4 NOT NULL, - "data_license_id" int4 NOT NULL, - "spdx_version" varchar(255) COLLATE "pg_catalog"."default" NOT NULL, - "name" varchar(255) COLLATE "pg_catalog"."default" NOT NULL, - "license_list_version" varchar(255) COLLATE "pg_catalog"."default" NOT NULL, - "created_ts" timestamptz(6) NOT NULL, - "creator_comment" text COLLATE "pg_catalog"."default" NOT NULL, - "document_comment" text COLLATE "pg_catalog"."default" NOT NULL, - "package_id" int4 NOT NULL, - CONSTRAINT "documents_pkey" PRIMARY KEY ("document_id"), - CONSTRAINT "uc_document_document_namespace_id" UNIQUE ("document_namespace_id") -); -ALTER TABLE IF EXISTS "spdx"."documents" OWNER TO "augur"; - -CREATE TABLE IF NOT EXISTS "spdx"."documents_creators" ( - "document_creator_id" int4 NOT NULL DEFAULT nextval('"spdx".documents_creators_document_creator_id_seq'::regclass), - "document_id" int4 NOT NULL, - "creator_id" int4 NOT NULL, - CONSTRAINT "documents_creators_pkey" PRIMARY KEY ("document_creator_id") -); -ALTER TABLE IF EXISTS "spdx"."documents_creators" OWNER TO "augur"; - -CREATE TABLE IF NOT EXISTS "spdx"."external_refs" ( - "external_ref_id" int4 NOT NULL DEFAULT nextval('"spdx".external_refs_external_ref_id_seq'::regclass), - "document_id" int4 NOT NULL, - "document_namespace_id" int4 NOT NULL, - "id_string" varchar(255) COLLATE "pg_catalog"."default" NOT NULL, - "sha256" varchar(64) COLLATE "pg_catalog"."default" NOT NULL, - CONSTRAINT "external_refs_pkey" PRIMARY KEY ("external_ref_id"), - CONSTRAINT "uc_external_ref_document_id_string" UNIQUE ("document_id", "id_string") -); -ALTER TABLE IF EXISTS "spdx"."external_refs" OWNER TO "augur"; - -CREATE TABLE IF NOT EXISTS "spdx"."file_contributors" ( - "file_contributor_id" int4 NOT NULL DEFAULT nextval('"spdx".file_contributors_file_contributor_id_seq'::regclass), - "file_id" int4 NOT NULL, - "contributor" text COLLATE "pg_catalog"."default" NOT NULL, - CONSTRAINT "file_contributors_pkey" PRIMARY KEY ("file_contributor_id") -); -ALTER TABLE IF EXISTS "spdx"."file_contributors" OWNER TO "augur"; - -CREATE TABLE IF NOT EXISTS "spdx"."file_types" ( - "file_type_id" int4, - "name" varchar(255) COLLATE "pg_catalog"."default" NOT NULL, - CONSTRAINT "uc_file_type_name" PRIMARY KEY ("name") -); -ALTER TABLE IF EXISTS "spdx"."file_types" OWNER TO "augur"; - -CREATE TABLE IF NOT EXISTS "spdx"."files" ( - "file_id" int4 NOT NULL DEFAULT nextval('"spdx".files_file_id_seq'::regclass), - "file_type_id" int4, - "sha256" varchar(64) COLLATE "pg_catalog"."default" NOT NULL, - "copyright_text" text COLLATE "pg_catalog"."default", - "package_id" int4, - "comment" text COLLATE "pg_catalog"."default" NOT NULL, - "notice" text COLLATE "pg_catalog"."default" NOT NULL, - CONSTRAINT "files_pkey" PRIMARY KEY ("file_id"), - CONSTRAINT "uc_file_sha256" UNIQUE ("sha256") -); -ALTER TABLE IF EXISTS "spdx"."files" OWNER TO "augur"; - -CREATE TABLE IF NOT EXISTS "spdx"."files_licenses" ( - "file_license_id" int4 NOT NULL DEFAULT nextval('"spdx".files_licenses_file_license_id_seq'::regclass), - "file_id" int4 NOT NULL, - "license_id" int4 NOT NULL, - "extracted_text" text COLLATE "pg_catalog"."default" NOT NULL, - CONSTRAINT "files_licenses_pkey" PRIMARY KEY ("file_license_id"), - CONSTRAINT "uc_file_license" UNIQUE ("file_id", "license_id") -); -ALTER TABLE IF EXISTS "spdx"."files_licenses" OWNER TO "augur"; - -CREATE TABLE IF NOT EXISTS "spdx"."files_scans" ( - "file_scan_id" int4 NOT NULL DEFAULT nextval('"spdx".files_scans_file_scan_id_seq'::regclass), - "file_id" int4 NOT NULL, - "scanner_id" int4 NOT NULL, - CONSTRAINT "files_scans_pkey" PRIMARY KEY ("file_scan_id"), - CONSTRAINT "uc_file_scanner_id" UNIQUE ("file_id", "scanner_id") -); -ALTER TABLE IF EXISTS "spdx"."files_scans" OWNER TO "augur"; - -CREATE TABLE IF NOT EXISTS "spdx"."identifiers" ( - "identifier_id" int4 NOT NULL DEFAULT nextval('"spdx".identifiers_identifier_id_seq'::regclass), - "document_namespace_id" int4 NOT NULL, - "id_string" varchar(255) COLLATE "pg_catalog"."default" NOT NULL, - "document_id" int4, - "package_id" int4, - "package_file_id" int4, - CONSTRAINT "identifiers_pkey" PRIMARY KEY ("identifier_id"), - CONSTRAINT "uc_identifier_document_namespace_id" UNIQUE ("document_namespace_id", "id_string"), - CONSTRAINT "uc_identifier_namespace_document_id" UNIQUE ("document_namespace_id", "document_id"), - CONSTRAINT "uc_identifier_namespace_package_id" UNIQUE ("document_namespace_id", "package_id"), - CONSTRAINT "uc_identifier_namespace_package_file_id" UNIQUE ("document_namespace_id", "package_file_id"), - CONSTRAINT "ck_identifier_exactly_one" CHECK (((document_id IS NOT NULL)::integer + (package_id IS NOT NULL)::integer + (package_file_id IS NOT NULL)::integer) = 1) -); -ALTER TABLE IF EXISTS "spdx"."identifiers" OWNER TO "augur"; - -CREATE TABLE IF NOT EXISTS "spdx"."licenses" ( - "license_id" int4 NOT NULL DEFAULT nextval('"spdx".licenses_license_id_seq'::regclass), - "name" varchar(255) COLLATE "pg_catalog"."default", - "short_name" varchar(255) COLLATE "pg_catalog"."default" NOT NULL, - "cross_reference" text COLLATE "pg_catalog"."default" NOT NULL, - "comment" text COLLATE "pg_catalog"."default" NOT NULL, - "is_spdx_official" bool NOT NULL, - CONSTRAINT "licenses_pkey" PRIMARY KEY ("license_id"), - CONSTRAINT "uc_license_short_name" UNIQUE ("short_name") -); -ALTER TABLE IF EXISTS "spdx"."licenses" OWNER TO "augur"; - -CREATE TABLE IF NOT EXISTS "spdx"."packages" ( - "package_id" int4 NOT NULL DEFAULT nextval('"spdx".packages_package_id_seq'::regclass), - "name" varchar(255) COLLATE "pg_catalog"."default" NOT NULL, - "version" varchar(255) COLLATE "pg_catalog"."default" NOT NULL, - "file_name" text COLLATE "pg_catalog"."default" NOT NULL, - "supplier_id" int4, - "originator_id" int4, - "download_location" text COLLATE "pg_catalog"."default", - "verification_code" varchar(64) COLLATE "pg_catalog"."default" NOT NULL, - "ver_code_excluded_file_id" int4, - "sha256" varchar(64) COLLATE "pg_catalog"."default", - "home_page" text COLLATE "pg_catalog"."default", - "source_info" text COLLATE "pg_catalog"."default" NOT NULL, - "concluded_license_id" int4, - "declared_license_id" int4, - "license_comment" text COLLATE "pg_catalog"."default" NOT NULL, - "copyright_text" text COLLATE "pg_catalog"."default", - "summary" text COLLATE "pg_catalog"."default" NOT NULL, - "description" text COLLATE "pg_catalog"."default" NOT NULL, - "comment" text COLLATE "pg_catalog"."default" NOT NULL, - "dosocs2_dir_code" varchar(64) COLLATE "pg_catalog"."default", - CONSTRAINT "packages_pkey" PRIMARY KEY ("package_id"), - CONSTRAINT "uc_package_sha256" UNIQUE ("sha256"), - CONSTRAINT "uc_dir_code_ver_code" UNIQUE ("verification_code", "dosocs2_dir_code"), - CONSTRAINT "uc_sha256_ds2_dir_code_exactly_one" CHECK (((sha256 IS NOT NULL)::integer + (dosocs2_dir_code IS NOT NULL)::integer) = 1) -); -ALTER TABLE IF EXISTS "spdx"."packages" OWNER TO "augur"; - -CREATE TABLE IF NOT EXISTS "spdx"."packages_files" ( - "package_file_id" int4 NOT NULL DEFAULT nextval('"spdx".packages_files_package_file_id_seq'::regclass), - "package_id" int4 NOT NULL, - "file_id" int4 NOT NULL, - "concluded_license_id" int4, - "license_comment" text COLLATE "pg_catalog"."default" NOT NULL, - "file_name" text COLLATE "pg_catalog"."default" NOT NULL, - CONSTRAINT "packages_files_pkey" PRIMARY KEY ("package_file_id"), - CONSTRAINT "uc_package_id_file_name" UNIQUE ("package_id", "file_name") -); -ALTER TABLE IF EXISTS "spdx"."packages_files" OWNER TO "augur"; - -CREATE TABLE IF NOT EXISTS "spdx"."packages_scans" ( - "package_scan_id" int4 NOT NULL DEFAULT nextval('"spdx".packages_scans_package_scan_id_seq'::regclass), - "package_id" int4 NOT NULL, - "scanner_id" int4 NOT NULL, - CONSTRAINT "packages_scans_pkey" PRIMARY KEY ("package_scan_id"), - CONSTRAINT "uc_package_scanner_id" UNIQUE ("package_id", "scanner_id") -); -ALTER TABLE IF EXISTS "spdx"."packages_scans" OWNER TO "augur"; - -CREATE TABLE IF NOT EXISTS "spdx"."projects" ( - "package_id" int4 NOT NULL DEFAULT nextval('"spdx".projects_package_id_seq'::regclass), - "name" text COLLATE "pg_catalog"."default" NOT NULL, - "homepage" text COLLATE "pg_catalog"."default" NOT NULL, - "uri" text COLLATE "pg_catalog"."default" NOT NULL, - CONSTRAINT "projects_pkey" PRIMARY KEY ("package_id") -); -ALTER TABLE IF EXISTS "spdx"."projects" OWNER TO "augur"; - -CREATE TABLE IF NOT EXISTS "spdx"."relationship_types" ( - "relationship_type_id" int4 NOT NULL DEFAULT nextval('"spdx".relationship_types_relationship_type_id_seq'::regclass), - "name" varchar(255) COLLATE "pg_catalog"."default" NOT NULL, - CONSTRAINT "relationship_types_pkey" PRIMARY KEY ("relationship_type_id"), - CONSTRAINT "uc_relationship_type_name" UNIQUE ("name") -); -ALTER TABLE IF EXISTS "spdx"."relationship_types" OWNER TO "augur"; - -CREATE TABLE IF NOT EXISTS "spdx"."relationships" ( - "relationship_id" int4 NOT NULL DEFAULT nextval('"spdx".relationships_relationship_id_seq'::regclass), - "left_identifier_id" int4 NOT NULL, - "right_identifier_id" int4 NOT NULL, - "relationship_type_id" int4 NOT NULL, - "relationship_comment" text COLLATE "pg_catalog"."default" NOT NULL, - CONSTRAINT "relationships_pkey" PRIMARY KEY ("relationship_id"), - CONSTRAINT "uc_left_right_relationship_type" UNIQUE ("left_identifier_id", "right_identifier_id", "relationship_type_id") -); -ALTER TABLE IF EXISTS "spdx"."relationships" OWNER TO "augur"; - -CREATE TABLE IF NOT EXISTS "spdx"."sbom_scans" ( - "repo_id" int4, - "sbom_scan" json -); -ALTER TABLE IF EXISTS "spdx"."sbom_scans" OWNER TO "augur"; - -CREATE TABLE IF NOT EXISTS "spdx"."scanners" ( - "scanner_id" int4 NOT NULL DEFAULT nextval('"spdx".scanners_scanner_id_seq'::regclass), - "name" varchar(255) COLLATE "pg_catalog"."default" NOT NULL, - CONSTRAINT "scanners_pkey" PRIMARY KEY ("scanner_id"), - CONSTRAINT "uc_scanner_name" UNIQUE ("name") -); -ALTER TABLE IF EXISTS "spdx"."scanners" OWNER TO "augur"; - -ALTER TABLE IF EXISTS "augur_data"."commit_comment_ref" ADD CONSTRAINT "fk_commit_comment_ref_commits_1" FOREIGN KEY ("cmt_id") REFERENCES "augur_data"."commits" ("cmt_id") ON DELETE NO ACTION ON UPDATE NO ACTION; -ALTER TABLE IF EXISTS "augur_data"."commit_comment_ref" ADD CONSTRAINT "fk_commit_comment_ref_message_1" FOREIGN KEY ("msg_id") REFERENCES "augur_data"."message" ("msg_id") ON DELETE NO ACTION ON UPDATE NO ACTION; -ALTER TABLE IF EXISTS "augur_data"."commit_parents" ADD CONSTRAINT "fk_commit_parents_commits_1" FOREIGN KEY ("cmt_id") REFERENCES "augur_data"."commits" ("cmt_id") ON DELETE NO ACTION ON UPDATE NO ACTION; -ALTER TABLE IF EXISTS "augur_data"."commit_parents" ADD CONSTRAINT "fk_commit_parents_commits_2" FOREIGN KEY ("parent_id") REFERENCES "augur_data"."commits" ("cmt_id") ON DELETE NO ACTION ON UPDATE NO ACTION; -ALTER TABLE IF EXISTS "augur_data"."commits" ADD CONSTRAINT "fk_commits_contributors_1" FOREIGN KEY ("cmt_ght_author_id") REFERENCES "augur_data"."contributors" ("cntrb_id") ON DELETE NO ACTION ON UPDATE NO ACTION; -ALTER TABLE IF EXISTS "augur_data"."commits" ADD CONSTRAINT "fk_commits_contributors_2" FOREIGN KEY ("cmt_ght_committer_id") REFERENCES "augur_data"."contributors" ("cntrb_id") ON DELETE NO ACTION ON UPDATE NO ACTION; -ALTER TABLE IF EXISTS "augur_data"."commits" ADD CONSTRAINT "fk_commits_repo_1" FOREIGN KEY ("repo_id") REFERENCES "augur_data"."repo" ("repo_id") ON DELETE NO ACTION ON UPDATE NO ACTION; -ALTER TABLE IF EXISTS "augur_data"."contributors_aliases" ADD CONSTRAINT "fk_contributors_aliases_contributors_1" FOREIGN KEY ("cntrb_id") REFERENCES "augur_data"."contributors" ("cntrb_id") ON DELETE NO ACTION ON UPDATE NO ACTION; -ALTER TABLE IF EXISTS "augur_data"."contributors_history" ADD CONSTRAINT "fk_contributors_history_contributors_1" FOREIGN KEY ("cntrb_id") REFERENCES "augur_data"."contributors" ("cntrb_id") ON DELETE NO ACTION ON UPDATE NO ACTION; -ALTER TABLE IF EXISTS "augur_data"."discourse_insights" ADD CONSTRAINT "fk_discourse_insights_message_1" FOREIGN KEY ("msg_id") REFERENCES "augur_data"."message" ("msg_id"); -ALTER TABLE IF EXISTS "augur_data"."issue_assignees" ADD CONSTRAINT "fk_issue_assignees_contributors_1" FOREIGN KEY ("cntrb_id") REFERENCES "augur_data"."contributors" ("cntrb_id") ON DELETE NO ACTION ON UPDATE NO ACTION; -ALTER TABLE IF EXISTS "augur_data"."issue_assignees" ADD CONSTRAINT "fk_issue_assignees_issues_1" FOREIGN KEY ("issue_id") REFERENCES "augur_data"."issues" ("issue_id") ON DELETE NO ACTION ON UPDATE NO ACTION; -ALTER TABLE IF EXISTS "augur_data"."issue_events" ADD CONSTRAINT "fk_issue_events_contributors_1" FOREIGN KEY ("cntrb_id") REFERENCES "augur_data"."contributors" ("cntrb_id") ON DELETE NO ACTION ON UPDATE NO ACTION; -ALTER TABLE IF EXISTS "augur_data"."issue_events" ADD CONSTRAINT "fk_issue_events_issues_1" FOREIGN KEY ("issue_id") REFERENCES "augur_data"."issues" ("issue_id") ON DELETE NO ACTION ON UPDATE NO ACTION; -ALTER TABLE IF EXISTS "augur_data"."issue_labels" ADD CONSTRAINT "fk_issue_labels_issues_1" FOREIGN KEY ("issue_id") REFERENCES "augur_data"."issues" ("issue_id") ON DELETE NO ACTION ON UPDATE NO ACTION; -ALTER TABLE IF EXISTS "augur_data"."issue_message_ref" ADD CONSTRAINT "fk_issue_message_ref_issues_1" FOREIGN KEY ("issue_id") REFERENCES "augur_data"."issues" ("issue_id") ON DELETE NO ACTION ON UPDATE NO ACTION; -ALTER TABLE IF EXISTS "augur_data"."issue_message_ref" ADD CONSTRAINT "fk_issue_message_ref_message_1" FOREIGN KEY ("msg_id") REFERENCES "augur_data"."message" ("msg_id") ON DELETE NO ACTION ON UPDATE NO ACTION; -ALTER TABLE IF EXISTS "augur_data"."issues" ADD CONSTRAINT "fk_issues_contributors_1" FOREIGN KEY ("cntrb_id") REFERENCES "augur_data"."contributors" ("cntrb_id") ON DELETE NO ACTION ON UPDATE NO ACTION; -ALTER TABLE IF EXISTS "augur_data"."issues" ADD CONSTRAINT "fk_issues_contributors_2" FOREIGN KEY ("reporter_id") REFERENCES "augur_data"."contributors" ("cntrb_id") ON DELETE NO ACTION ON UPDATE NO ACTION; -ALTER TABLE IF EXISTS "augur_data"."issues" ADD CONSTRAINT "fk_issues_repo" FOREIGN KEY ("repo_id") REFERENCES "augur_data"."repo" ("repo_id") ON DELETE CASCADE ON UPDATE CASCADE; -ALTER TABLE IF EXISTS "augur_data"."libraries" ADD CONSTRAINT "fk_libraries_repo_1" FOREIGN KEY ("repo_id") REFERENCES "augur_data"."repo" ("repo_id") ON DELETE NO ACTION ON UPDATE NO ACTION; -ALTER TABLE IF EXISTS "augur_data"."library_dependencies" ADD CONSTRAINT "fk_library_dependencies_libraries_1" FOREIGN KEY ("library_id") REFERENCES "augur_data"."libraries" ("library_id") ON DELETE NO ACTION ON UPDATE NO ACTION; -ALTER TABLE IF EXISTS "augur_data"."library_version" ADD CONSTRAINT "fk_library_version_libraries_1" FOREIGN KEY ("library_id") REFERENCES "augur_data"."libraries" ("library_id") ON DELETE NO ACTION ON UPDATE NO ACTION; -ALTER TABLE IF EXISTS "augur_data"."lstm_anomaly_results" ADD CONSTRAINT "fk_lstm_anomaly_results_lstm_anomaly_models_1" FOREIGN KEY ("model_id") REFERENCES "augur_data"."lstm_anomaly_models" ("model_id") ON DELETE NO ACTION ON UPDATE NO ACTION; -ALTER TABLE IF EXISTS "augur_data"."lstm_anomaly_results" ADD CONSTRAINT "fk_lstm_anomaly_results_repo_1" FOREIGN KEY ("repo_id") REFERENCES "augur_data"."repo" ("repo_id") ON DELETE NO ACTION ON UPDATE NO ACTION; -ALTER TABLE IF EXISTS "augur_data"."message" ADD CONSTRAINT "fk_message_contributors_1" FOREIGN KEY ("cntrb_id") REFERENCES "augur_data"."contributors" ("cntrb_id") ON DELETE NO ACTION ON UPDATE NO ACTION; -ALTER TABLE IF EXISTS "augur_data"."message" ADD CONSTRAINT "fk_message_platform_1" FOREIGN KEY ("pltfrm_id") REFERENCES "augur_data"."platform" ("pltfrm_id") ON DELETE NO ACTION ON UPDATE NO ACTION; -ALTER TABLE IF EXISTS "augur_data"."message" ADD CONSTRAINT "fk_message_repo_groups_list_serve_1" FOREIGN KEY ("rgls_id") REFERENCES "augur_data"."repo_groups_list_serve" ("rgls_id") ON DELETE NO ACTION ON UPDATE NO ACTION; -ALTER TABLE IF EXISTS "augur_data"."message_analysis" ADD CONSTRAINT "fk_message_analysis_message_1" FOREIGN KEY ("msg_id") REFERENCES "augur_data"."message" ("msg_id"); -ALTER TABLE IF EXISTS "augur_data"."message_analysis_summary" ADD CONSTRAINT "fk_message_analysis_summary_repo_1" FOREIGN KEY ("repo_id") REFERENCES "augur_data"."repo" ("repo_id"); -ALTER TABLE IF EXISTS "augur_data"."message_sentiment" ADD CONSTRAINT "fk_message_sentiment_message_1" FOREIGN KEY ("msg_id") REFERENCES "augur_data"."message" ("msg_id"); -ALTER TABLE IF EXISTS "augur_data"."message_sentiment_summary" ADD CONSTRAINT "fk_message_sentiment_summary_repo_1" FOREIGN KEY ("repo_id") REFERENCES "augur_data"."repo" ("repo_id"); -ALTER TABLE IF EXISTS "augur_data"."pull_request_assignees" ADD CONSTRAINT "fk_pull_request_assignees_contributors_1" FOREIGN KEY ("contrib_id") REFERENCES "augur_data"."contributors" ("cntrb_id") ON DELETE NO ACTION ON UPDATE NO ACTION; -ALTER TABLE IF EXISTS "augur_data"."pull_request_assignees" ADD CONSTRAINT "fk_pull_request_assignees_pull_requests_1" FOREIGN KEY ("pull_request_id") REFERENCES "augur_data"."pull_requests" ("pull_request_id") ON DELETE NO ACTION ON UPDATE NO ACTION; -ALTER TABLE IF EXISTS "augur_data"."pull_request_commits" ADD CONSTRAINT "fk_pull_request_commits_pull_requests_1" FOREIGN KEY ("pull_request_id") REFERENCES "augur_data"."pull_requests" ("pull_request_id") ON DELETE NO ACTION ON UPDATE NO ACTION; -ALTER TABLE IF EXISTS "augur_data"."pull_request_events" ADD CONSTRAINT "fk_pull_request_events_contributors_1" FOREIGN KEY ("cntrb_id") REFERENCES "augur_data"."contributors" ("cntrb_id") ON DELETE NO ACTION ON UPDATE NO ACTION; -ALTER TABLE IF EXISTS "augur_data"."pull_request_events" ADD CONSTRAINT "fk_pull_request_events_pull_requests_1" FOREIGN KEY ("pull_request_id") REFERENCES "augur_data"."pull_requests" ("pull_request_id") ON DELETE NO ACTION ON UPDATE NO ACTION; -ALTER TABLE IF EXISTS "augur_data"."pull_request_files" ADD CONSTRAINT "fk_pull_request_commits_pull_requests_1" FOREIGN KEY ("pull_request_id") REFERENCES "augur_data"."pull_requests" ("pull_request_id") ON DELETE NO ACTION ON UPDATE NO ACTION; -ALTER TABLE IF EXISTS "augur_data"."pull_request_labels" ADD CONSTRAINT "fk_pull_request_labels_pull_requests_1" FOREIGN KEY ("pull_request_id") REFERENCES "augur_data"."pull_requests" ("pull_request_id") ON DELETE NO ACTION ON UPDATE NO ACTION; -ALTER TABLE IF EXISTS "augur_data"."pull_request_message_ref" ADD CONSTRAINT "fk_pull_request_message_ref_message_1" FOREIGN KEY ("msg_id") REFERENCES "augur_data"."message" ("msg_id") ON DELETE NO ACTION ON UPDATE NO ACTION; -ALTER TABLE IF EXISTS "augur_data"."pull_request_message_ref" ADD CONSTRAINT "fk_pull_request_message_ref_pull_requests_1" FOREIGN KEY ("pull_request_id") REFERENCES "augur_data"."pull_requests" ("pull_request_id") ON DELETE NO ACTION ON UPDATE NO ACTION; -ALTER TABLE IF EXISTS "augur_data"."pull_request_meta" ADD CONSTRAINT "fk_pull_request_meta_contributors_2" FOREIGN KEY ("cntrb_id") REFERENCES "augur_data"."contributors" ("cntrb_id") ON DELETE NO ACTION ON UPDATE NO ACTION; -ALTER TABLE IF EXISTS "augur_data"."pull_request_meta" ADD CONSTRAINT "fk_pull_request_meta_pull_requests_1" FOREIGN KEY ("pull_request_id") REFERENCES "augur_data"."pull_requests" ("pull_request_id") ON DELETE NO ACTION ON UPDATE NO ACTION; -ALTER TABLE IF EXISTS "augur_data"."pull_request_repo" ADD CONSTRAINT "fk_pull_request_repo_contributors_1" FOREIGN KEY ("pr_cntrb_id") REFERENCES "augur_data"."contributors" ("cntrb_id") ON DELETE NO ACTION ON UPDATE NO ACTION; -ALTER TABLE IF EXISTS "augur_data"."pull_request_repo" ADD CONSTRAINT "fk_pull_request_repo_pull_request_meta_1" FOREIGN KEY ("pr_repo_meta_id") REFERENCES "augur_data"."pull_request_meta" ("pr_repo_meta_id") ON DELETE NO ACTION ON UPDATE NO ACTION; -ALTER TABLE IF EXISTS "augur_data"."pull_request_reviewers" ADD CONSTRAINT "fk_pull_request_reviewers_contributors_1" FOREIGN KEY ("cntrb_id") REFERENCES "augur_data"."contributors" ("cntrb_id") ON DELETE NO ACTION ON UPDATE NO ACTION; -ALTER TABLE IF EXISTS "augur_data"."pull_request_reviewers" ADD CONSTRAINT "fk_pull_request_reviewers_pull_requests_1" FOREIGN KEY ("pull_request_id") REFERENCES "augur_data"."pull_requests" ("pull_request_id") ON DELETE NO ACTION ON UPDATE NO ACTION; -ALTER TABLE IF EXISTS "augur_data"."pull_request_teams" ADD CONSTRAINT "fk_pull_request_teams_pull_requests_1" FOREIGN KEY ("pull_request_id") REFERENCES "augur_data"."pull_requests" ("pull_request_id") ON DELETE NO ACTION ON UPDATE NO ACTION; -ALTER TABLE IF EXISTS "augur_data"."pull_requests" ADD CONSTRAINT "fk_pull_requests_pull_request_meta_1" FOREIGN KEY ("pr_meta_head_id") REFERENCES "augur_data"."pull_request_meta" ("pr_repo_meta_id") ON DELETE NO ACTION ON UPDATE NO ACTION; -ALTER TABLE IF EXISTS "augur_data"."pull_requests" ADD CONSTRAINT "fk_pull_requests_pull_request_meta_2" FOREIGN KEY ("pr_meta_base_id") REFERENCES "augur_data"."pull_request_meta" ("pr_repo_meta_id") ON DELETE NO ACTION ON UPDATE NO ACTION; -ALTER TABLE IF EXISTS "augur_data"."pull_requests" ADD CONSTRAINT "fk_pull_requests_repo_1" FOREIGN KEY ("repo_id") REFERENCES "augur_data"."repo" ("repo_id") ON DELETE NO ACTION ON UPDATE NO ACTION; -ALTER TABLE IF EXISTS "augur_data"."releases" ADD CONSTRAINT "fk_releases_repo_1" FOREIGN KEY ("repo_id") REFERENCES "augur_data"."repo" ("repo_id") ON DELETE NO ACTION ON UPDATE NO ACTION; -ALTER TABLE IF EXISTS "augur_data"."repo" ADD CONSTRAINT "fk_repo_repo_groups_1" FOREIGN KEY ("repo_group_id") REFERENCES "augur_data"."repo_groups" ("repo_group_id") ON DELETE NO ACTION ON UPDATE NO ACTION; -COMMENT ON CONSTRAINT "fk_repo_repo_groups_1" ON "augur_data"."repo" IS 'Repo_groups cardinality set to one and only one because, although in theory there could be more than one repo group for a repo, this might create dependecies in hosted situation that we do not want to live with. '; -ALTER TABLE IF EXISTS "augur_data"."repo_badging" ADD CONSTRAINT "fk_repo_badging_repo_1" FOREIGN KEY ("repo_id") REFERENCES "augur_data"."repo" ("repo_id") ON DELETE NO ACTION ON UPDATE NO ACTION; -ALTER TABLE IF EXISTS "augur_data"."repo_cluster_messages" ADD CONSTRAINT "fk_repo_cluster_messages_repo_1" FOREIGN KEY ("repo_id") REFERENCES "augur_data"."repo" ("repo_id"); -ALTER TABLE IF EXISTS "augur_data"."repo_group_insights" ADD CONSTRAINT "fk_repo_group_insights_repo_groups_1" FOREIGN KEY ("repo_group_id") REFERENCES "augur_data"."repo_groups" ("repo_group_id") ON DELETE NO ACTION ON UPDATE NO ACTION; -ALTER TABLE IF EXISTS "augur_data"."repo_groups_list_serve" ADD CONSTRAINT "fk_repo_groups_list_serve_repo_groups_1" FOREIGN KEY ("repo_group_id") REFERENCES "augur_data"."repo_groups" ("repo_group_id") ON DELETE NO ACTION ON UPDATE NO ACTION; -ALTER TABLE IF EXISTS "augur_data"."repo_info" ADD CONSTRAINT "fk_repo_info_repo_1" FOREIGN KEY ("repo_id") REFERENCES "augur_data"."repo" ("repo_id") ON DELETE NO ACTION ON UPDATE NO ACTION; -ALTER TABLE IF EXISTS "augur_data"."repo_insights" ADD CONSTRAINT "fk_repo_insights_repo_1" FOREIGN KEY ("repo_id") REFERENCES "augur_data"."repo" ("repo_id") ON DELETE NO ACTION ON UPDATE NO ACTION; -ALTER TABLE IF EXISTS "augur_data"."repo_insights_records" ADD CONSTRAINT "repo_id_ref" FOREIGN KEY ("repo_id") REFERENCES "augur_data"."repo" ("repo_id") ON DELETE SET NULL ON UPDATE CASCADE; -ALTER TABLE IF EXISTS "augur_data"."repo_labor" ADD CONSTRAINT "fk_repo_labor_repo_1" FOREIGN KEY ("repo_id") REFERENCES "augur_data"."repo" ("repo_id") ON DELETE NO ACTION ON UPDATE NO ACTION; -ALTER TABLE IF EXISTS "augur_data"."repo_meta" ADD CONSTRAINT "fk_repo_meta_repo_1" FOREIGN KEY ("repo_id") REFERENCES "augur_data"."repo" ("repo_id") ON DELETE NO ACTION ON UPDATE NO ACTION; -ALTER TABLE IF EXISTS "augur_data"."repo_sbom_scans" ADD CONSTRAINT "repo_linker_sbom" FOREIGN KEY ("repo_id") REFERENCES "augur_data"."repo" ("repo_id") ON DELETE CASCADE ON UPDATE CASCADE; -ALTER TABLE IF EXISTS "augur_data"."repo_stats" ADD CONSTRAINT "fk_repo_stats_repo_1" FOREIGN KEY ("repo_id") REFERENCES "augur_data"."repo" ("repo_id") ON DELETE NO ACTION ON UPDATE NO ACTION; -ALTER TABLE IF EXISTS "augur_data"."repo_test_coverage" ADD CONSTRAINT "fk_repo_test_coverage_repo_1" FOREIGN KEY ("repo_id") REFERENCES "augur_data"."repo" ("repo_id") ON DELETE NO ACTION ON UPDATE NO ACTION; -ALTER TABLE IF EXISTS "augur_data"."repo_topic" ADD CONSTRAINT "fk_repo_topic_repo_1" FOREIGN KEY ("repo_id") REFERENCES "augur_data"."repo" ("repo_id"); -ALTER TABLE IF EXISTS "augur_data"."topic_words" ADD CONSTRAINT "fk_topic_words_repo_topic_1" FOREIGN KEY ("topic_id") REFERENCES "augur_data"."repo_topic" ("repo_topic_id"); -ALTER TABLE IF EXISTS "spdx"."annotations" ADD CONSTRAINT "annotations_annotation_type_id_fkey" FOREIGN KEY ("annotation_type_id") REFERENCES "spdx"."annotation_types" ("annotation_type_id") ON DELETE NO ACTION ON UPDATE NO ACTION; -ALTER TABLE IF EXISTS "spdx"."annotations" ADD CONSTRAINT "annotations_creator_id_fkey" FOREIGN KEY ("creator_id") REFERENCES "spdx"."creators" ("creator_id") ON DELETE NO ACTION ON UPDATE NO ACTION; -ALTER TABLE IF EXISTS "spdx"."annotations" ADD CONSTRAINT "annotations_document_id_fkey" FOREIGN KEY ("document_id") REFERENCES "spdx"."documents" ("document_id") ON DELETE NO ACTION ON UPDATE NO ACTION; -ALTER TABLE IF EXISTS "spdx"."annotations" ADD CONSTRAINT "annotations_identifier_id_fkey" FOREIGN KEY ("identifier_id") REFERENCES "spdx"."identifiers" ("identifier_id") ON DELETE NO ACTION ON UPDATE NO ACTION; -ALTER TABLE IF EXISTS "spdx"."creators" ADD CONSTRAINT "creators_creator_type_id_fkey" FOREIGN KEY ("creator_type_id") REFERENCES "spdx"."creator_types" ("creator_type_id") ON DELETE NO ACTION ON UPDATE NO ACTION; -ALTER TABLE IF EXISTS "spdx"."documents" ADD CONSTRAINT "documents_data_license_id_fkey" FOREIGN KEY ("data_license_id") REFERENCES "spdx"."licenses" ("license_id") ON DELETE NO ACTION ON UPDATE NO ACTION; -ALTER TABLE IF EXISTS "spdx"."documents" ADD CONSTRAINT "documents_document_namespace_id_fkey" FOREIGN KEY ("document_namespace_id") REFERENCES "spdx"."document_namespaces" ("document_namespace_id") ON DELETE NO ACTION ON UPDATE NO ACTION; -ALTER TABLE IF EXISTS "spdx"."documents" ADD CONSTRAINT "documents_package_id_fkey" FOREIGN KEY ("package_id") REFERENCES "spdx"."packages" ("package_id") ON DELETE NO ACTION ON UPDATE NO ACTION; -ALTER TABLE IF EXISTS "spdx"."documents_creators" ADD CONSTRAINT "documents_creators_creator_id_fkey" FOREIGN KEY ("creator_id") REFERENCES "spdx"."creators" ("creator_id") ON DELETE NO ACTION ON UPDATE NO ACTION; -ALTER TABLE IF EXISTS "spdx"."documents_creators" ADD CONSTRAINT "documents_creators_document_id_fkey" FOREIGN KEY ("document_id") REFERENCES "spdx"."documents" ("document_id") ON DELETE NO ACTION ON UPDATE NO ACTION; -ALTER TABLE IF EXISTS "spdx"."external_refs" ADD CONSTRAINT "external_refs_document_id_fkey" FOREIGN KEY ("document_id") REFERENCES "spdx"."documents" ("document_id") ON DELETE NO ACTION ON UPDATE NO ACTION; -ALTER TABLE IF EXISTS "spdx"."external_refs" ADD CONSTRAINT "external_refs_document_namespace_id_fkey" FOREIGN KEY ("document_namespace_id") REFERENCES "spdx"."document_namespaces" ("document_namespace_id") ON DELETE NO ACTION ON UPDATE NO ACTION; -ALTER TABLE IF EXISTS "spdx"."file_contributors" ADD CONSTRAINT "file_contributors_file_id_fkey" FOREIGN KEY ("file_id") REFERENCES "spdx"."files" ("file_id") ON DELETE NO ACTION ON UPDATE NO ACTION; -ALTER TABLE IF EXISTS "spdx"."files_licenses" ADD CONSTRAINT "files_licenses_file_id_fkey" FOREIGN KEY ("file_id") REFERENCES "spdx"."files" ("file_id") ON DELETE NO ACTION ON UPDATE NO ACTION; -ALTER TABLE IF EXISTS "spdx"."files_licenses" ADD CONSTRAINT "files_licenses_license_id_fkey" FOREIGN KEY ("license_id") REFERENCES "spdx"."licenses" ("license_id") ON DELETE NO ACTION ON UPDATE NO ACTION; -ALTER TABLE IF EXISTS "spdx"."files_scans" ADD CONSTRAINT "files_scans_file_id_fkey" FOREIGN KEY ("file_id") REFERENCES "spdx"."files" ("file_id") ON DELETE NO ACTION ON UPDATE NO ACTION; -ALTER TABLE IF EXISTS "spdx"."files_scans" ADD CONSTRAINT "files_scans_scanner_id_fkey" FOREIGN KEY ("scanner_id") REFERENCES "spdx"."scanners" ("scanner_id") ON DELETE NO ACTION ON UPDATE NO ACTION; -ALTER TABLE IF EXISTS "spdx"."identifiers" ADD CONSTRAINT "identifiers_document_id_fkey" FOREIGN KEY ("document_id") REFERENCES "spdx"."documents" ("document_id") ON DELETE NO ACTION ON UPDATE NO ACTION; -ALTER TABLE IF EXISTS "spdx"."identifiers" ADD CONSTRAINT "identifiers_document_namespace_id_fkey" FOREIGN KEY ("document_namespace_id") REFERENCES "spdx"."document_namespaces" ("document_namespace_id") ON DELETE NO ACTION ON UPDATE NO ACTION; -ALTER TABLE IF EXISTS "spdx"."identifiers" ADD CONSTRAINT "identifiers_package_file_id_fkey" FOREIGN KEY ("package_file_id") REFERENCES "spdx"."packages_files" ("package_file_id") ON DELETE NO ACTION ON UPDATE NO ACTION; -ALTER TABLE IF EXISTS "spdx"."identifiers" ADD CONSTRAINT "identifiers_package_id_fkey" FOREIGN KEY ("package_id") REFERENCES "spdx"."packages" ("package_id") ON DELETE NO ACTION ON UPDATE NO ACTION; -ALTER TABLE IF EXISTS "spdx"."packages" ADD CONSTRAINT "fk_package_packages_files" FOREIGN KEY ("ver_code_excluded_file_id") REFERENCES "spdx"."packages_files" ("package_file_id") ON DELETE NO ACTION ON UPDATE NO ACTION; -ALTER TABLE IF EXISTS "spdx"."packages" ADD CONSTRAINT "packages_concluded_license_id_fkey" FOREIGN KEY ("concluded_license_id") REFERENCES "spdx"."licenses" ("license_id") ON DELETE NO ACTION ON UPDATE NO ACTION; -ALTER TABLE IF EXISTS "spdx"."packages" ADD CONSTRAINT "packages_declared_license_id_fkey" FOREIGN KEY ("declared_license_id") REFERENCES "spdx"."licenses" ("license_id") ON DELETE NO ACTION ON UPDATE NO ACTION; -ALTER TABLE IF EXISTS "spdx"."packages" ADD CONSTRAINT "packages_originator_id_fkey" FOREIGN KEY ("originator_id") REFERENCES "spdx"."creators" ("creator_id") ON DELETE NO ACTION ON UPDATE NO ACTION; -ALTER TABLE IF EXISTS "spdx"."packages" ADD CONSTRAINT "packages_supplier_id_fkey" FOREIGN KEY ("supplier_id") REFERENCES "spdx"."creators" ("creator_id") ON DELETE NO ACTION ON UPDATE NO ACTION; -ALTER TABLE IF EXISTS "spdx"."packages_files" ADD CONSTRAINT "fk_package_files_packages" FOREIGN KEY ("package_id") REFERENCES "spdx"."packages" ("package_id") ON DELETE NO ACTION ON UPDATE NO ACTION; -ALTER TABLE IF EXISTS "spdx"."packages_files" ADD CONSTRAINT "packages_files_concluded_license_id_fkey" FOREIGN KEY ("concluded_license_id") REFERENCES "spdx"."licenses" ("license_id") ON DELETE NO ACTION ON UPDATE NO ACTION; -ALTER TABLE IF EXISTS "spdx"."packages_files" ADD CONSTRAINT "packages_files_file_id_fkey" FOREIGN KEY ("file_id") REFERENCES "spdx"."files" ("file_id") ON DELETE NO ACTION ON UPDATE NO ACTION; -ALTER TABLE IF EXISTS "spdx"."packages_scans" ADD CONSTRAINT "packages_scans_package_id_fkey" FOREIGN KEY ("package_id") REFERENCES "spdx"."packages" ("package_id") ON DELETE NO ACTION ON UPDATE NO ACTION; -ALTER TABLE IF EXISTS "spdx"."packages_scans" ADD CONSTRAINT "packages_scans_scanner_id_fkey" FOREIGN KEY ("scanner_id") REFERENCES "spdx"."scanners" ("scanner_id") ON DELETE NO ACTION ON UPDATE NO ACTION; -ALTER TABLE IF EXISTS "spdx"."relationships" ADD CONSTRAINT "relationships_left_identifier_id_fkey" FOREIGN KEY ("left_identifier_id") REFERENCES "spdx"."identifiers" ("identifier_id") ON DELETE NO ACTION ON UPDATE NO ACTION; -ALTER TABLE IF EXISTS "spdx"."relationships" ADD CONSTRAINT "relationships_relationship_type_id_fkey" FOREIGN KEY ("relationship_type_id") REFERENCES "spdx"."relationship_types" ("relationship_type_id") ON DELETE NO ACTION ON UPDATE NO ACTION; -ALTER TABLE IF EXISTS "spdx"."relationships" ADD CONSTRAINT "relationships_right_identifier_id_fkey" FOREIGN KEY ("right_identifier_id") REFERENCES "spdx"."identifiers" ("identifier_id") ON DELETE NO ACTION ON UPDATE NO ACTION; - -INSERT INTO "augur_operations"."augur_settings" set value = 31 where setting = 'augur_data_version'; - -CREATE TABLE "augur_data"."pull_request_analysis" ( - "pull_request_analysis_id" serial8, - "pull_request_id" int8, - "merge_probability" float8, - "mechanism" varchar, - "tool_source" varchar, - "tool_version" varchar, - "data_source" varchar, - "data_collection_date" timestamptz NOT NULL DEFAULT CURRENT_TIMESTAMP, - PRIMARY KEY ("pull_request_analysis_id") -) -; - -ALTER TABLE "augur_data"."pull_request_analysis" OWNER TO "augur"; - -COMMENT ON COLUMN "augur_data"."pull_request_analysis"."pull_request_id" IS 'It would be better if the pull request worker is run first to fetch the latest PRs before analyzing'; - -COMMENT ON COLUMN "augur_data"."pull_request_analysis"."merge_probability" IS 'Indicates the probability of the PR being merged'; - -COMMENT ON COLUMN "augur_data"."pull_request_analysis"."mechanism" IS 'the ML model used for prediction (It is XGBoost Classifier at present)'; - -ALTER TABLE "augur_data"."pull_request_analysis" ADD CONSTRAINT "fk_pull_request_analysis_pull_requests_1" FOREIGN KEY ("pull_request_id") REFERENCES "augur_data"."pull_requests" ("pull_request_id") ON DELETE CASCADE ON UPDATE CASCADE; - -CREATE INDEX CONCURRENTLY "probability_idx" ON "augur_data"."pull_request_analysis" USING btree ( - "merge_probability" DESC NULLS LAST -); - -CREATE INDEX CONCURRENTLY "pr_anal_idx" ON "augur_data"."pull_request_analysis" USING btree ( - "pull_request_id" -); - -update "augur_operations"."augur_settings" set value = 32 where setting = 'augur_data_version'; - - --- # Pull request commit updates -ALTER TABLE "augur_data"."pull_request_commits" ADD COLUMN "pr_cmt_author_cntrb_id" int8; -ALTER TABLE "augur_data"."pull_request_commits" ADD COLUMN "pr_cmt_timestamp" timestamp(0); -ALTER TABLE "augur_data"."pull_request_commits" ADD COLUMN "pr_cmt_author_email" varchar COLLATE "pg_catalog"."default"; - -update "augur_operations"."augur_settings" set value = 33 where setting = 'augur_data_version'; - - --- # Pull request commit updates -update "augur_operations"."augur_settings" set value = 34 where setting = 'augur_data_version'; - - --- Adding GitLab Platform -INSERT INTO "augur_data"."platform" ("pltfrm_id", "pltfrm_name", "pltfrm_version", "pltfrm_release_date", "tool_source", "tool_version", "data_source", "data_collection_date") VALUES (25151, 'GitLab', '3', '2020-12-27', 'Manual Entry', 'Sean Goggins', 'GitLab', '2020-12-27 16:07:20'); --- # Pull request commit updates -update "augur_operations"."augur_settings" set value = 35 where setting = 'augur_data_version'; - - -ALTER TABLE "augur_data"."pull_request_reviews" ALTER COLUMN "pr_review_author_association" TYPE varchar COLLATE "pg_catalog"."default"; - -ALTER TABLE "augur_data"."pull_request_reviews" ALTER COLUMN "pr_review_state" TYPE varchar COLLATE "pg_catalog"."default"; - -ALTER TABLE "augur_data"."pull_request_reviews" ALTER COLUMN "pr_review_body" TYPE varchar COLLATE "pg_catalog"."default"; - -ALTER TABLE "augur_data"."pull_request_reviews" ALTER COLUMN "pr_review_node_id" TYPE varchar COLLATE "pg_catalog"."default"; - -ALTER TABLE "augur_data"."pull_request_reviews" ALTER COLUMN "pr_review_html_url" TYPE varchar COLLATE "pg_catalog"."default"; - -ALTER TABLE "augur_data"."pull_request_reviews" ALTER COLUMN "pr_review_pull_request_url" TYPE varchar COLLATE "pg_catalog"."default"; - -ALTER TABLE "augur_data"."pull_request_reviews" ALTER COLUMN "pr_review_commit_id" TYPE varchar COLLATE "pg_catalog"."default"; - -ALTER TABLE "augur_data"."pull_request_reviews" ALTER COLUMN "tool_source" TYPE varchar COLLATE "pg_catalog"."default"; - -ALTER TABLE "augur_data"."pull_request_reviews" ALTER COLUMN "tool_version" TYPE varchar COLLATE "pg_catalog"."default"; - -ALTER TABLE "augur_data"."pull_request_reviews" ALTER COLUMN "data_source" TYPE varchar COLLATE "pg_catalog"."default"; - - - -update "augur_operations"."augur_settings" set value = 38 where setting = 'augur_data_version'; - - -ALTER TABLE "augur_data"."pull_request_commits" DROP CONSTRAINT "fk_pull_request_commits_pull_requests_1"; - -ALTER TABLE "augur_data"."pull_request_events" DROP CONSTRAINT "fk_pull_request_events_pull_requests_1"; - -ALTER TABLE "augur_data"."pull_request_files" DROP CONSTRAINT "fk_pull_request_commits_pull_requests_1"; - -ALTER TABLE "augur_data"."pull_request_labels" DROP CONSTRAINT "fk_pull_request_labels_pull_requests_1"; - -ALTER TABLE "augur_data"."pull_request_message_ref" DROP CONSTRAINT "fk_pull_request_message_ref_pull_requests_1"; - -ALTER TABLE "augur_data"."pull_request_message_ref" DROP CONSTRAINT "fk_pull_request_message_ref_message_1"; - -ALTER TABLE "augur_data"."pull_request_meta" DROP CONSTRAINT "fk_pull_request_meta_pull_requests_1"; - -ALTER TABLE "augur_data"."pull_request_repo" DROP CONSTRAINT "fk_pull_request_repo_pull_request_meta_1"; - -ALTER TABLE "augur_data"."pull_request_review_message_ref" DROP CONSTRAINT "fk_pull_request_review_message_ref_pull_request_reviews_1"; - -ALTER TABLE "augur_data"."pull_request_reviewers" DROP CONSTRAINT "fk_pull_request_reviewers_pull_requests_1"; - -ALTER TABLE "augur_data"."pull_request_reviews" DROP CONSTRAINT "fk_pull_request_reviews_pull_requests_1"; - -ALTER TABLE "augur_data"."pull_request_reviews" ALTER COLUMN "pr_review_author_association" TYPE varchar COLLATE "pg_catalog"."default"; - -ALTER TABLE "augur_data"."pull_request_reviews" ALTER COLUMN "pr_review_state" TYPE varchar COLLATE "pg_catalog"."default"; - -ALTER TABLE "augur_data"."pull_request_reviews" ALTER COLUMN "pr_review_body" TYPE varchar COLLATE "pg_catalog"."default"; - -ALTER TABLE "augur_data"."pull_request_reviews" ALTER COLUMN "pr_review_node_id" TYPE varchar COLLATE "pg_catalog"."default"; - -ALTER TABLE "augur_data"."pull_request_reviews" ALTER COLUMN "pr_review_html_url" TYPE varchar COLLATE "pg_catalog"."default"; - -ALTER TABLE "augur_data"."pull_request_reviews" ALTER COLUMN "pr_review_pull_request_url" TYPE varchar COLLATE "pg_catalog"."default"; - -ALTER TABLE "augur_data"."pull_request_reviews" ALTER COLUMN "pr_review_commit_id" TYPE varchar COLLATE "pg_catalog"."default"; - -ALTER TABLE "augur_data"."pull_request_reviews" ALTER COLUMN "tool_source" TYPE varchar COLLATE "pg_catalog"."default"; - -ALTER TABLE "augur_data"."pull_request_reviews" ALTER COLUMN "tool_version" TYPE varchar COLLATE "pg_catalog"."default"; - -ALTER TABLE "augur_data"."pull_request_reviews" ALTER COLUMN "data_source" TYPE varchar COLLATE "pg_catalog"."default"; - -ALTER TABLE "augur_data"."pull_request_teams" DROP CONSTRAINT "fk_pull_request_teams_pull_requests_1"; - -ALTER TABLE "augur_data"."pull_requests" DROP CONSTRAINT "fk_pull_requests_pull_request_meta_2"; - -ALTER TABLE "augur_data"."pull_requests" DROP CONSTRAINT "fk_pull_requests_pull_request_meta_1"; - -ALTER TABLE "augur_data"."pull_request_commits" ADD CONSTRAINT "fk_pull_request_commits_pull_requests_1" FOREIGN KEY ("pull_request_id") REFERENCES "augur_data"."pull_requests" ("pull_request_id") ON DELETE CASCADE ON UPDATE CASCADE; - -ALTER TABLE "augur_data"."pull_request_events" ADD CONSTRAINT "fk_pull_request_events_pull_requests_1" FOREIGN KEY ("pull_request_id") REFERENCES "augur_data"."pull_requests" ("pull_request_id") ON DELETE CASCADE ON UPDATE CASCADE; - -ALTER TABLE "augur_data"."pull_request_files" ADD CONSTRAINT "fk_pull_request_commits_pull_requests_1" FOREIGN KEY ("pull_request_id") REFERENCES "augur_data"."pull_requests" ("pull_request_id") ON DELETE CASCADE ON UPDATE CASCADE; - -ALTER TABLE "augur_data"."pull_request_labels" ADD CONSTRAINT "fk_pull_request_labels_pull_requests_1" FOREIGN KEY ("pull_request_id") REFERENCES "augur_data"."pull_requests" ("pull_request_id") ON DELETE CASCADE ON UPDATE CASCADE; - -ALTER TABLE "augur_data"."pull_request_message_ref" ADD CONSTRAINT "fk_pull_request_message_ref_message_1" FOREIGN KEY ("msg_id") REFERENCES "augur_data"."message" ("msg_id") ON DELETE CASCADE ON UPDATE CASCADE; - -ALTER TABLE "augur_data"."pull_request_message_ref" ADD CONSTRAINT "fk_pull_request_message_ref_pull_requests_1" FOREIGN KEY ("pull_request_id") REFERENCES "augur_data"."pull_requests" ("pull_request_id") ON DELETE CASCADE ON UPDATE CASCADE; - -ALTER TABLE "augur_data"."pull_request_meta" ADD CONSTRAINT "fk_pull_request_meta_pull_requests_1" FOREIGN KEY ("pull_request_id") REFERENCES "augur_data"."pull_requests" ("pull_request_id") ON DELETE CASCADE ON UPDATE CASCADE; - -ALTER TABLE "augur_data"."pull_request_repo" ADD CONSTRAINT "fk_pull_request_repo_pull_request_meta_1" FOREIGN KEY ("pr_repo_meta_id") REFERENCES "augur_data"."pull_request_meta" ("pr_repo_meta_id") ON DELETE CASCADE ON UPDATE CASCADE; - -ALTER TABLE "augur_data"."pull_request_review_message_ref" ADD CONSTRAINT "fk_pull_request_review_message_ref_pull_request_reviews_1" FOREIGN KEY ("pr_review_id") REFERENCES "augur_data"."pull_request_reviews" ("pr_review_id") ON DELETE CASCADE ON UPDATE CASCADE; - -ALTER TABLE "augur_data"."pull_request_reviewers" ADD CONSTRAINT "fk_pull_request_reviewers_pull_requests_1" FOREIGN KEY ("pull_request_id") REFERENCES "augur_data"."pull_requests" ("pull_request_id") ON DELETE CASCADE ON UPDATE CASCADE; - -ALTER TABLE "augur_data"."pull_request_reviews" ADD CONSTRAINT "fk_pull_request_reviews_pull_requests_1" FOREIGN KEY ("pull_request_id") REFERENCES "augur_data"."pull_requests" ("pull_request_id") ON DELETE CASCADE ON UPDATE CASCADE; - -ALTER TABLE "augur_data"."pull_request_teams" ADD CONSTRAINT "fk_pull_request_teams_pull_requests_1" FOREIGN KEY ("pull_request_id") REFERENCES "augur_data"."pull_requests" ("pull_request_id") ON DELETE CASCADE ON UPDATE CASCADE; - -ALTER TABLE "augur_data"."pull_requests" ADD CONSTRAINT "fk_pull_requests_pull_request_meta_1" FOREIGN KEY ("pr_meta_head_id") REFERENCES "augur_data"."pull_request_meta" ("pr_repo_meta_id") ON DELETE CASCADE ON UPDATE CASCADE; - -ALTER TABLE "augur_data"."pull_requests" ADD CONSTRAINT "fk_pull_requests_pull_request_meta_2" FOREIGN KEY ("pr_meta_base_id") REFERENCES "augur_data"."pull_request_meta" ("pr_repo_meta_id") ON DELETE CASCADE ON UPDATE CASCADE; - - - -update "augur_operations"."augur_settings" set value = 39 where setting = 'augur_data_version'; - - -COMMENT ON TABLE "augur_data"."contributor_repo" IS 'Developed in Partnership with Andrew Brain'; - -ALTER TABLE "augur_data"."contributor_repo" ADD COLUMN IF NOT EXISTS "repo_id" int8 NOT NULL; - -ALTER TABLE "augur_data"."contributor_repo" ADD COLUMN IF NOT EXISTS "repo_name" varchar COLLATE "pg_catalog"."default" NOT NULL; - -ALTER TABLE "augur_data"."contributor_repo" ADD COLUMN IF NOT EXISTS "event_id" int8 NOT NULL; - -ALTER TABLE "augur_data"."contributor_repo" ADD COLUMN IF NOT EXISTS "created_at" timestamp(0) NOT NULL; - -ALTER TABLE "augur_data"."contributors_aliases" DROP CONSTRAINT IF EXISTS "fk_contributors_aliases_contributors_1"; - -ALTER TABLE "augur_data"."message" DROP CONSTRAINT IF EXISTS "fk_message_repo_groups_list_serve_1"; - -ALTER TABLE "augur_data"."message" DROP CONSTRAINT IF EXISTS "fk_message_platform_1"; - -ALTER TABLE "augur_data"."message" DROP CONSTRAINT IF EXISTS "fk_message_contributors_1"; - -ALTER TABLE "augur_data"."pull_request_reviewers" DROP CONSTRAINT IF EXISTS "fk_pull_request_reviewers_contributors_1"; - -ALTER TABLE "augur_data"."pull_request_reviews" DROP CONSTRAINT IF EXISTS "fk_pull_request_reviews_contributors_1"; - -ALTER TABLE "augur_data"."pull_requests" DROP CONSTRAINT IF EXISTS "fk_pull_requests_repo_1"; - -ALTER TABLE "augur_data"."contributors_aliases" DROP CONSTRAINT IF EXISTS "fk_alias_id"; - -ALTER TABLE "augur_data"."pull_request_commits" DROP CONSTRAINT IF EXISTS "fk_pr_commit_cntrb_id"; - -ALTER TABLE "augur_data"."contributors_aliases" ADD CONSTRAINT "fk_alias_id" FOREIGN KEY ("cntrb_a_id") REFERENCES "augur_data"."contributors" ("cntrb_id") ON DELETE CASCADE ON UPDATE CASCADE NOT VALID; - -ALTER TABLE "augur_data"."contributors_aliases" ADD CONSTRAINT "fk_contributors_aliases_contributors_1" FOREIGN KEY ("cntrb_id") REFERENCES "augur_data"."contributors" ("cntrb_id") ON DELETE CASCADE ON UPDATE CASCADE NOT VALID; - -ALTER TABLE "augur_data"."message" ADD CONSTRAINT "fk_message_contributors_1" FOREIGN KEY ("cntrb_id") REFERENCES "augur_data"."contributors" ("cntrb_id") ON DELETE CASCADE ON UPDATE CASCADE NOT VALID; - -ALTER TABLE "augur_data"."message" ADD CONSTRAINT "fk_message_platform_1" FOREIGN KEY ("pltfrm_id") REFERENCES "augur_data"."platform" ("pltfrm_id") ON DELETE CASCADE ON UPDATE CASCADE NOT VALID; - -ALTER TABLE "augur_data"."message" ADD CONSTRAINT "fk_message_repo_groups_list_serve_1" FOREIGN KEY ("rgls_id") REFERENCES "augur_data"."repo_groups_list_serve" ("rgls_id") ON DELETE CASCADE ON UPDATE CASCADE NOT VALID; - -ALTER TABLE "augur_data"."pull_request_commits" ADD CONSTRAINT "fk_pr_commit_cntrb_id" FOREIGN KEY ("pr_cmt_author_cntrb_id") REFERENCES "augur_data"."contributors" ("cntrb_id") ON DELETE CASCADE ON UPDATE CASCADE NOT VALID; - -ALTER TABLE "augur_data"."pull_request_reviewers" ADD CONSTRAINT "fk_pull_request_reviewers_contributors_1" FOREIGN KEY ("cntrb_id") REFERENCES "augur_data"."contributors" ("cntrb_id") ON DELETE CASCADE ON UPDATE CASCADE NOT VALID; - -ALTER TABLE "augur_data"."pull_request_reviews" ADD CONSTRAINT "fk_pull_request_reviews_contributors_1" FOREIGN KEY ("cntrb_id") REFERENCES "augur_data"."contributors" ("cntrb_id") ON DELETE CASCADE ON UPDATE CASCADE NOT VALID; - -ALTER TABLE "augur_data"."pull_requests" ADD CONSTRAINT "fk_pr_contribs" FOREIGN KEY ("pr_augur_contributor_id") REFERENCES "augur_data"."contributors" ("cntrb_id") ON DELETE CASCADE ON UPDATE CASCADE NOT VALID; - -ALTER TABLE "augur_data"."pull_requests" ADD CONSTRAINT "fk_pull_requests_repo_1" FOREIGN KEY ("repo_id") REFERENCES "augur_data"."repo" ("repo_id") ON DELETE CASCADE ON UPDATE CASCADE NOT VALID; - -update "augur_operations"."augur_settings" set value = 40 where setting = 'augur_data_version'; - - -CREATE INDEX pull_requests_idx_repo_id_data_datex ON "augur_data"."pull_requests" (repo_id,data_collection_date); -CREATE INDEX repo_idx_repo_id_repo_namex ON "augur_data"."repo" (repo_id,repo_name); -CREATE INDEX repo_info_idx_repo_id_data_datex ON "augur_data"."repo_info" (repo_id,data_collection_date); -CREATE INDEX repo_info_idx_repo_id_data_date_1x ON "augur_data"."repo_info" (repo_id,data_collection_date); - -update "augur_operations"."augur_settings" set value = 41 where setting = 'augur_data_version'; - --- Update Repo Foreign Key -ALTER TABLE "augur_data"."repo" DROP CONSTRAINT "fk_repo_repo_groups_1"; - -ALTER TABLE "augur_data"."repo" ADD CONSTRAINT "fk_repo_repo_groups_1" FOREIGN KEY ("repo_group_id") REFERENCES "augur_data"."repo_groups" ("repo_group_id") ON DELETE NO ACTION ON UPDATE NO ACTION NOT VALID; - -COMMENT ON CONSTRAINT "fk_repo_repo_groups_1" ON "augur_data"."repo" IS 'Repo_groups cardinality set to one and only one because, although in theory there could be more than one repo group for a repo, this might create dependencies in hosted situation that we do not want to live with. '; - -ALTER TABLE "augur_data"."message" - ALTER COLUMN "data_collection_date" SET DEFAULT CURRENT_TIMESTAMP; - -update "augur_operations"."augur_settings" set value = 42 where setting = 'augur_data_version'; - --- Adding new contributors to the database - --- Adding new contributors to the database --- Adding new contributors to the database - --- Adding new contributors to the database - -BEGIN; -select setval('augur_data.contributor_affiliations_ca_id_seq', 34000, true); - -select nextval('augur_data.contributor_affiliations_ca_id_seq'::regclass); - - -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "ca_start_date", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_affiliation", "ca_active") VALUES (25222, 'venuvardhanreddytekula8@gmail.com', '1970-01-01', NULL, NULL, NULL, '2021-02-06 15:14:35', '2021-02-06 15:14:35', 'Google Summer of Code', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "ca_start_date", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_affiliation", "ca_active") VALUES (25221, 'nichols.keanu9@gmail.com', '1970-01-01', NULL, NULL, NULL, '2021-02-06 15:14:11', '2021-02-06 15:14:11', 'Google Summer of Code', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "ca_start_date", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_affiliation", "ca_active") VALUES (25220, 'ubuntu@ip-172-31-2-14.us-west-2.compute.internal', '1970-01-01', NULL, NULL, NULL, '2021-02-06 15:13:50', '2021-02-06 15:13:50', 'University of Missouri', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "ca_start_date", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_affiliation", "ca_active") VALUES (25219, 'kmlumbard@gmail.com', '1970-01-01', NULL, NULL, NULL, '2021-02-06 15:13:21', '2021-02-06 15:13:21', 'University of Nebraska-Omaha', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "ca_start_date", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_affiliation", "ca_active") VALUES (25218, 'jonah.zukosky@gmail.com', '1970-01-01', NULL, NULL, NULL, '2021-02-06 15:12:50', '2021-02-06 15:12:50', 'University of Missouri', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "ca_start_date", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_affiliation", "ca_active") VALUES (25217, 'pogayo17@alustudent.com', '1970-01-01', NULL, NULL, NULL, '2021-02-06 15:12:14', '2021-02-06 15:12:14', 'Google Summer of Code', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "ca_start_date", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_affiliation", "ca_active") VALUES (25216, 'mishrapratik356@gmail.com', '1970-01-01', NULL, NULL, NULL, '2021-02-06 15:11:23', '2021-02-06 15:11:23', 'Google Summer of Code', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "ca_start_date", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_affiliation", "ca_active") VALUES (25215, 'andrewbrain2019@gmail.com', '1970-01-01', NULL, NULL, NULL, '2021-02-06 15:10:42', '2021-02-06 15:10:42', 'University of Missouri', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "ca_start_date", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_affiliation", "ca_active") VALUES (25214, 'root@bing0ne.com', '1970-01-01', NULL, NULL, NULL, '2021-02-06 15:10:15', '2021-02-06 15:10:15', 'Google Summer of Code', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "ca_start_date", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_affiliation", "ca_active") VALUES (25213, 'gordonli@me.com', '1970-01-01', NULL, NULL, NULL, '2021-02-06 15:09:46', '2021-02-06 15:09:46', 'CHAOSS Community', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "ca_start_date", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_affiliation", "ca_active") VALUES (25212, 'ac.be', '1970-01-01', NULL, NULL, NULL, '2021-02-06 15:09:20', '2021-02-06 15:09:20', 'CHAOSS Community', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "ca_start_date", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_affiliation", "ca_active") VALUES (25211, 'shohanduttaroy99@gmail.com', '1970-01-01', NULL, NULL, NULL, '2021-02-06 15:08:56', '2021-02-06 15:08:56', 'Google Summer of Code', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "ca_start_date", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_affiliation", "ca_active") VALUES (25210, 'missouri.edu', '1970-01-01', NULL, NULL, NULL, '2021-02-06 15:08:27', '2021-02-06 15:08:27', 'University of Missouri', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "ca_start_date", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_affiliation", "ca_active") VALUES (25209, 'akarajgi0@gmail.com', '1970-01-01', NULL, NULL, NULL, '2021-02-06 15:07:11', '2021-02-06 15:07:11', 'Google Summer of Code', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "ca_start_date", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_affiliation", "ca_active") VALUES (25208, 'jacobeharding@gmail.com', '1970-01-01', NULL, NULL, NULL, '2021-02-06 15:06:45', '2021-02-06 15:06:45', 'CHAOSS Community', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "ca_start_date", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_affiliation", "ca_active") VALUES (25207, 'hacksmath@gmail.com', '1970-01-01', NULL, NULL, NULL, '2021-02-06 15:06:19', '2021-02-06 15:06:19', 'CHAOSS Community', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "ca_start_date", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_affiliation", "ca_active") VALUES (25206, 'benjaminparish628@gmail.com', '1970-01-01', NULL, NULL, NULL, '2021-02-06 15:05:48', '2021-02-06 15:05:48', 'CHAOSS Community', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "ca_start_date", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_affiliation", "ca_active") VALUES (25205, 'msnell@unomaha.edu', '1970-01-01', NULL, NULL, NULL, '2021-02-06 15:04:05', '2021-02-06 15:04:05', 'University of Nebraska-Omaha', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "ca_start_date", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_affiliation", "ca_active") VALUES (25204, 'aksharap.181it132@nitk.edu.in', '1970-01-01', NULL, NULL, NULL, '2021-02-06 14:10:03', '2021-02-06 14:10:03', 'Google Summer of Code', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "ca_start_date", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_affiliation", "ca_active") VALUES (25203, 'iyovcheva@vmware.com', '1970-01-01', NULL, NULL, NULL, '2021-02-06 14:09:36', '2021-02-06 14:09:36', 'VMWare', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "ca_start_date", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_affiliation", "ca_active") VALUES (25202, 'maximumbalk@gmail.com', '1970-01-01', NULL, NULL, NULL, '2021-02-06 14:09:15', '2021-02-06 14:09:15', 'Google Summer of Code', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "ca_start_date", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_affiliation", "ca_active") VALUES (25201, '43684300+pratikmishra356@users.noreply.github.com', '1970-01-01', NULL, NULL, NULL, '2021-02-06 14:08:34', '2021-02-06 14:08:34', 'Google Summer of Code', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "ca_start_date", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_affiliation", "ca_active") VALUES (25200, 'abhinavbajpai2012@gmail.com', '1970-01-01', NULL, NULL, NULL, '2021-02-06 14:08:01', '2021-02-06 14:08:01', 'Google Summer of Code', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "ca_start_date", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_affiliation", "ca_active") VALUES (25188, 'ortonpaul18@gmail.com', '1970-01-01', NULL, NULL, NULL, '2021-02-06 14:05:58', '2021-02-06 14:05:58', 'Google Summer of Code', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "ca_start_date", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_affiliation", "ca_active") VALUES (25187, 'linkgeorg@gmail.com', '1970-01-01', NULL, NULL, NULL, '2021-02-06 14:05:29', '2021-02-06 14:05:29', 'University of Nebraska-Omaha', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "ca_start_date", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_affiliation", "ca_active") VALUES (25186, 'parth261297@gmail.com', '1970-01-01', NULL, NULL, NULL, '2021-02-06 14:05:02', '2021-02-06 14:05:02', 'Google Summer of Code', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "ca_start_date", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_affiliation", "ca_active") VALUES (25185, 'users.noreply.github.com', '1970-01-01', NULL, NULL, NULL, '2021-02-06 14:04:39', '2021-02-06 14:04:39', 'CHAOSS Community', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "ca_start_date", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_affiliation", "ca_active") VALUES (25184, 'foundjem@users.noreply.github.com', '1970-01-01', NULL, NULL, NULL, '2021-02-06 14:04:12', '2021-02-06 14:04:12', 'CHAOSS Community', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "ca_start_date", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_affiliation", "ca_active") VALUES (25183, 'gsyc.es', '1970-01-01', NULL, NULL, NULL, '2021-02-06 14:03:39', '2021-02-06 14:03:39', 'Bitergia', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "ca_start_date", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_affiliation", "ca_active") VALUES (25182, 'harshalmittal4@gmail.com', '1970-01-01', NULL, NULL, NULL, '2021-02-06 14:03:21', '2021-02-06 14:03:21', 'Bitergia', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "ca_start_date", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_affiliation", "ca_active") VALUES (25181, '31676518+tretrue@users.noreply.github.com', '1970-01-01', NULL, NULL, NULL, '2021-02-06 14:02:57', '2021-02-06 14:02:57', 'University of Missouri', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "ca_start_date", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_affiliation", "ca_active") VALUES (25180, 'klumbard@unomaha.edu', '1970-01-01', NULL, NULL, NULL, '2021-02-06 14:02:28', '2021-02-06 14:02:28', 'University of Nebraska-Omaha', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "ca_start_date", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_affiliation", "ca_active") VALUES (25179, 'gabe.heim@yahoo.com', '1970-01-01', NULL, NULL, NULL, '2021-02-06 14:01:55', '2021-02-06 14:01:55', 'University of Missouri', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "ca_start_date", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_affiliation", "ca_active") VALUES (25178, 'ccarterlandis@pm.me', '1970-01-01', NULL, NULL, NULL, '2021-02-06 14:01:34', '2021-02-06 14:01:34', 'University of Missouri', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "ca_start_date", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_affiliation", "ca_active") VALUES (25177, 'ccarterlandis@gmail.com', '1970-01-01', NULL, NULL, NULL, '2021-02-06 14:01:13', '2021-02-06 14:01:13', 'University of Missouri', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "ca_start_date", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_affiliation", "ca_active") VALUES (25176, 'abuhman@users.noreply.github.com', '1970-01-01', NULL, NULL, NULL, '2021-02-06 14:00:32', '2021-02-06 14:00:32', 'University of Nebraska-Omaha', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "ca_start_date", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_affiliation", "ca_active") VALUES (25175, 'gogginss@missouri.edu', '1970-01-01', NULL, NULL, NULL, '2021-02-06 14:00:06', '2021-02-06 14:00:06', 'University of Missouri', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "ca_start_date", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_affiliation", "ca_active") VALUES (25174, 'spencerrrobinson@unomaha.edu', '1970-01-01', NULL, NULL, NULL, '2021-02-06 13:59:19', '2021-02-06 13:59:19', 'University of Nebraska-Omaha', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "ca_start_date", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_affiliation", "ca_active") VALUES (25173, 'germonprez@gmail.com', '1970-01-01', NULL, NULL, NULL, '2021-02-06 13:58:48', '2021-02-06 13:58:48', 'University of Nebraska-Omaha', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "ca_start_date", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_affiliation", "ca_active") VALUES (25172, 'derek@howderek.com', '1970-01-01', NULL, NULL, NULL, '2021-02-06 13:57:56', '2021-02-06 13:57:56', 'Lawrence Livermore National Lab', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "ca_start_date", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_affiliation", "ca_active") VALUES (25171, 'doombreakr@gmail.com', '1970-01-01', NULL, NULL, NULL, '2021-02-06 13:57:20', '2021-02-06 13:57:20', 'Lawrence Livermore National Lab', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "ca_start_date", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_affiliation", "ca_active") VALUES (25170, 'cmehil.warn@gmail.com', '2016-05-06', 'load', '1.0', 'load', '2021-02-06 13:55:16', '2021-02-06 13:56:46', 'University of Nebraska-Omaha', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_start_date", "ca_affiliation", "ca_active") VALUES (24189, 'jschnake@vmware.com', 'Helper Script', NULL, 'Dawn''s vmware_mapping JSON', '2020-04-28 18:52:49', '2020-04-28 18:52:49', '1970-01-01', 'VMware', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_start_date", "ca_affiliation", "ca_active") VALUES (24190, 'schnake.john@gmail.com', 'Helper Script', NULL, 'Dawn''s vmware_mapping JSON', '2020-04-28 18:52:49', '2020-04-28 18:52:49', '1970-01-01', 'VMware', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_start_date", "ca_affiliation", "ca_active") VALUES (24191, 'bmcerlean@vmware.com', 'Helper Script', NULL, 'Dawn''s vmware_mapping JSON', '2020-04-28 18:52:49', '2020-04-28 18:52:49', '1970-01-01', 'VMware', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_start_date", "ca_affiliation", "ca_active") VALUES (24192, 'bridget@bitnami.com', 'Helper Script', NULL, 'Dawn''s vmware_mapping JSON', '2020-04-28 18:52:49', '2020-04-28 18:52:49', '1970-01-01', 'VMware', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_start_date", "ca_affiliation", "ca_active") VALUES (24193, 'ashish.amarnath@gmail.com', 'Helper Script', NULL, 'Dawn''s vmware_mapping JSON', '2020-04-28 18:52:49', '2020-04-28 18:52:49', '1970-01-01', 'VMware', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_start_date", "ca_affiliation", "ca_active") VALUES (24194, 'ashisham@vmware.com', 'Helper Script', NULL, 'Dawn''s vmware_mapping JSON', '2020-04-28 18:52:49', '2020-04-28 18:52:49', '1970-01-01', 'VMware', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_start_date", "ca_affiliation", "ca_active") VALUES (24195, 'gus@inodes.org', 'Helper Script', NULL, 'Dawn''s vmware_mapping JSON', '2020-04-28 18:52:49', '2020-04-28 18:52:49', '1970-01-01', 'VMware', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_start_date", "ca_affiliation", "ca_active") VALUES (24196, 'felipe.alfaro@gmail.com', 'Helper Script', NULL, 'Dawn''s vmware_mapping JSON', '2020-04-28 18:52:49', '2020-04-28 18:52:49', '1970-01-01', 'VMware', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_start_date", "ca_affiliation", "ca_active") VALUES (24197, 'sameer@damagehead.com', 'Helper Script', NULL, 'Dawn''s vmware_mapping JSON', '2020-04-28 18:52:49', '2020-04-28 18:52:49', '1970-01-01', 'VMware', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_start_date", "ca_affiliation", "ca_active") VALUES (24198, 'sameer@bitnami.com', 'Helper Script', NULL, 'Dawn''s vmware_mapping JSON', '2020-04-28 18:52:49', '2020-04-28 18:52:49', '1970-01-01', 'VMware', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_start_date", "ca_affiliation", "ca_active") VALUES (24199, 'sameersbn@Sameers-MacBook-Pro.local', 'Helper Script', NULL, 'Dawn''s vmware_mapping JSON', '2020-04-28 18:52:49', '2020-04-28 18:52:49', '1970-01-01', 'VMware', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_start_date", "ca_affiliation", "ca_active") VALUES (24200, 'adnan@bitnami.com', 'Helper Script', NULL, 'Dawn''s vmware_mapping JSON', '2020-04-28 18:52:49', '2020-04-28 18:52:49', '1970-01-01', 'VMware', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_start_date", "ca_affiliation", "ca_active") VALUES (24201, 'adnan@prydoni.us', 'Helper Script', NULL, 'Dawn''s vmware_mapping JSON', '2020-04-28 18:52:49', '2020-04-28 18:52:49', '1970-01-01', 'VMware', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_start_date", "ca_affiliation", "ca_active") VALUES (24202, 'adnan@adnan-bitnami.local', 'Helper Script', NULL, 'Dawn''s vmware_mapping JSON', '2020-04-28 18:52:49', '2020-04-28 18:52:49', '1970-01-01', 'VMware', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_start_date", "ca_affiliation", "ca_active") VALUES (24203, 'apulido@gmail.com', 'Helper Script', NULL, 'Dawn''s vmware_mapping JSON', '2020-04-28 18:52:49', '2020-04-28 18:52:49', '1970-01-01', 'VMware', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_start_date", "ca_affiliation", "ca_active") VALUES (24204, 'ara@ubuntu.com', 'Helper Script', NULL, 'Dawn''s vmware_mapping JSON', '2020-04-28 18:52:49', '2020-04-28 18:52:49', '1970-01-01', 'VMware', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_start_date", "ca_affiliation", "ca_active") VALUES (24205, 'bridgetmcerlean@gmail.com', 'Helper Script', NULL, 'Dawn''s vmware_mapping JSON', '2020-04-28 18:52:49', '2020-04-28 18:52:49', '1970-01-01', 'VMware', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_start_date", "ca_affiliation", "ca_active") VALUES (24206, 'migmartri@gmail.com', 'Helper Script', NULL, 'Dawn''s vmware_mapping JSON', '2020-04-28 18:52:49', '2020-04-28 18:52:49', '1970-01-01', 'VMware', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_start_date", "ca_affiliation", "ca_active") VALUES (24207, 'miguel@bitnami.com', 'Helper Script', NULL, 'Dawn''s vmware_mapping JSON', '2020-04-28 18:52:49', '2020-04-28 18:52:49', '1970-01-01', 'VMware', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_start_date", "ca_affiliation", "ca_active") VALUES (24208, 'dbarranco@bitnami.com', 'Helper Script', NULL, 'Dawn''s vmware_mapping JSON', '2020-04-28 18:52:49', '2020-04-28 18:52:49', '1970-01-01', 'VMware', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_start_date", "ca_affiliation", "ca_active") VALUES (24209, 'jbianquetti@bitnami.com', 'Helper Script', NULL, 'Dawn''s vmware_mapping JSON', '2020-04-28 18:52:49', '2020-04-28 18:52:49', '1970-01-01', 'VMware', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_start_date", "ca_affiliation", "ca_active") VALUES (24210, 'jbianquetti-nami@users.noreply.github.com', 'Helper Script', NULL, 'Dawn''s vmware_mapping JSON', '2020-04-28 18:52:49', '2020-04-28 18:52:49', '1970-01-01', 'VMware', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_start_date", "ca_affiliation", "ca_active") VALUES (24211, 'andres.mgotor@gmail.com', 'Helper Script', NULL, 'Dawn''s vmware_mapping JSON', '2020-04-28 18:52:49', '2020-04-28 18:52:49', '1970-01-01', 'VMware', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_start_date", "ca_affiliation", "ca_active") VALUES (24212, 'andres@bitnami.com', 'Helper Script', NULL, 'Dawn''s vmware_mapping JSON', '2020-04-28 18:52:49', '2020-04-28 18:52:49', '1970-01-01', 'VMware', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_start_date", "ca_affiliation", "ca_active") VALUES (24213, 'juanjosec@gmail.com', 'Helper Script', NULL, 'Dawn''s vmware_mapping JSON', '2020-04-28 18:52:49', '2020-04-28 18:52:49', '1970-01-01', 'VMware', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_start_date", "ca_affiliation", "ca_active") VALUES (24214, 'containers@bitnami.com', 'Helper Script', NULL, 'Dawn''s vmware_mapping JSON', '2020-04-28 18:52:49', '2020-04-28 18:52:49', '1970-01-01', 'VMware', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_start_date", "ca_affiliation", "ca_active") VALUES (24215, 'bors\[bot\]@users.noreply.github.com', 'Helper Script', NULL, 'Dawn''s vmware_mapping JSON', '2020-04-28 18:52:49', '2020-04-28 18:52:49', '1970-01-01', 'VMware', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_start_date", "ca_affiliation", "ca_active") VALUES (24216, 'matt.goodall@gmail.com', 'Helper Script', NULL, 'Dawn''s vmware_mapping JSON', '2020-04-28 18:52:49', '2020-04-28 18:52:49', '1970-01-01', 'VMware', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_start_date", "ca_affiliation", "ca_active") VALUES (24217, 'j-fuentes@users.noreply.github.com', 'Helper Script', NULL, 'Dawn''s vmware_mapping JSON', '2020-04-28 18:52:49', '2020-04-28 18:52:49', '1970-01-01', 'VMware', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_start_date", "ca_affiliation", "ca_active") VALUES (24218, 'jfuentes@bitnami.com', 'Helper Script', NULL, 'Dawn''s vmware_mapping JSON', '2020-04-28 18:52:49', '2020-04-28 18:52:49', '1970-01-01', 'VMware', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_start_date", "ca_affiliation", "ca_active") VALUES (24219, 'mnelson@bitnami.com', 'Helper Script', NULL, 'Dawn''s vmware_mapping JSON', '2020-04-28 18:52:49', '2020-04-28 18:52:49', '1970-01-01', 'VMware', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_start_date", "ca_affiliation", "ca_active") VALUES (24220, 'mkm@bitnami.com', 'Helper Script', NULL, 'Dawn''s vmware_mapping JSON', '2020-04-28 18:52:49', '2020-04-28 18:52:49', '1970-01-01', 'VMware', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_start_date", "ca_affiliation", "ca_active") VALUES (24221, 'mmikulicic@gmail.com', 'Helper Script', NULL, 'Dawn''s vmware_mapping JSON', '2020-04-28 18:52:49', '2020-04-28 18:52:49', '1970-01-01', 'VMware', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_start_date", "ca_affiliation", "ca_active") VALUES (24222, 'james@jameswestby.net', 'Helper Script', NULL, 'Dawn''s vmware_mapping JSON', '2020-04-28 18:52:49', '2020-04-28 18:52:49', '1970-01-01', 'VMware', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_start_date", "ca_affiliation", "ca_active") VALUES (24223, 'stephen.stewart@carisenda.com', 'Helper Script', NULL, 'Dawn''s vmware_mapping JSON', '2020-04-28 18:52:49', '2020-04-28 18:52:49', '1970-01-01', 'VMware', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_start_date", "ca_affiliation", "ca_active") VALUES (24224, 'daniel.lopez@gmail.com', 'Helper Script', NULL, 'Dawn''s vmware_mapping JSON', '2020-04-28 18:52:49', '2020-04-28 18:52:49', '1970-01-01', 'VMware', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_start_date", "ca_affiliation", "ca_active") VALUES (24225, 'nomisbeme@users.noreply.github.com', 'Helper Script', NULL, 'Dawn''s vmware_mapping JSON', '2020-04-28 18:52:49', '2020-04-28 18:52:49', '1970-01-01', 'VMware', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_start_date", "ca_affiliation", "ca_active") VALUES (24226, 'marcos@bitnami.com', 'Helper Script', NULL, 'Dawn''s vmware_mapping JSON', '2020-04-28 18:52:49', '2020-04-28 18:52:49', '1970-01-01', 'VMware', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_start_date", "ca_affiliation", "ca_active") VALUES (24227, 'marcosbc@users.noreply.github.com', 'Helper Script', NULL, 'Dawn''s vmware_mapping JSON', '2020-04-28 18:52:49', '2020-04-28 18:52:49', '1970-01-01', 'VMware', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_start_date", "ca_affiliation", "ca_active") VALUES (24228, 'juan@bitnami.com', 'Helper Script', NULL, 'Dawn''s vmware_mapping JSON', '2020-04-28 18:52:49', '2020-04-28 18:52:49', '1970-01-01', 'VMware', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_start_date", "ca_affiliation", "ca_active") VALUES (24229, 'juan_ariza_cordoba@hotmail.com', 'Helper Script', NULL, 'Dawn''s vmware_mapping JSON', '2020-04-28 18:52:49', '2020-04-28 18:52:49', '1970-01-01', 'VMware', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_start_date", "ca_affiliation", "ca_active") VALUES (24230, 'jota@bitnami.com', 'Helper Script', NULL, 'Dawn''s vmware_mapping JSON', '2020-04-28 18:52:49', '2020-04-28 18:52:49', '1970-01-01', 'VMware', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_start_date", "ca_affiliation", "ca_active") VALUES (24231, 'jotamartos@gmail.com', 'Helper Script', NULL, 'Dawn''s vmware_mapping JSON', '2020-04-28 18:52:49', '2020-04-28 18:52:49', '1970-01-01', 'VMware', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_start_date", "ca_affiliation", "ca_active") VALUES (24232, 'alejandro@bitnami.com', 'Helper Script', NULL, 'Dawn''s vmware_mapping JSON', '2020-04-28 18:52:49', '2020-04-28 18:52:49', '1970-01-01', 'VMware', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_start_date", "ca_affiliation", "ca_active") VALUES (24233, 'alexrwave@gmail.com', 'Helper Script', NULL, 'Dawn''s vmware_mapping JSON', '2020-04-28 18:52:49', '2020-04-28 18:52:49', '1970-01-01', 'VMware', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_start_date", "ca_affiliation", "ca_active") VALUES (24234, 'jotadrilo@users.noreply.github.com', 'Helper Script', NULL, 'Dawn''s vmware_mapping JSON', '2020-04-28 18:52:49', '2020-04-28 18:52:49', '1970-01-01', 'VMware', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_start_date", "ca_affiliation", "ca_active") VALUES (24235, 'jsalmeron@bitnami.com', 'Helper Script', NULL, 'Dawn''s vmware_mapping JSON', '2020-04-28 18:52:49', '2020-04-28 18:52:49', '1970-01-01', 'VMware', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_start_date", "ca_affiliation", "ca_active") VALUES (24236, 'tomas@bitnami.com', 'Helper Script', NULL, 'Dawn''s vmware_mapping JSON', '2020-04-28 18:52:49', '2020-04-28 18:52:49', '1970-01-01', 'VMware', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_start_date", "ca_affiliation", "ca_active") VALUES (24237, 'vikram@bitnami.com', 'Helper Script', NULL, 'Dawn''s vmware_mapping JSON', '2020-04-28 18:52:49', '2020-04-28 18:52:49', '1970-01-01', 'VMware', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_start_date", "ca_affiliation", "ca_active") VALUES (24238, 'vikram-bitnami@users.noreply.github.com', 'Helper Script', NULL, 'Dawn''s vmware_mapping JSON', '2020-04-28 18:52:49', '2020-04-28 18:52:49', '1970-01-01', 'VMware', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_start_date", "ca_affiliation", "ca_active") VALUES (24239, 'crhernandez@bitnami.com', 'Helper Script', NULL, 'Dawn''s vmware_mapping JSON', '2020-04-28 18:52:49', '2020-04-28 18:52:49', '1970-01-01', 'VMware', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_start_date", "ca_affiliation", "ca_active") VALUES (24240, 'carrodher1179@gmail.com', 'Helper Script', NULL, 'Dawn''s vmware_mapping JSON', '2020-04-28 18:52:49', '2020-04-28 18:52:49', '1970-01-01', 'VMware', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_start_date", "ca_affiliation", "ca_active") VALUES (24241, 'juanjo@bitnami.com', 'Helper Script', NULL, 'Dawn''s vmware_mapping JSON', '2020-04-28 18:52:49', '2020-04-28 18:52:49', '1970-01-01', 'VMware', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_start_date", "ca_affiliation", "ca_active") VALUES (24242, 'juanjo@bitrock.com', 'Helper Script', NULL, 'Dawn''s vmware_mapping JSON', '2020-04-28 18:52:49', '2020-04-28 18:52:49', '1970-01-01', 'VMware', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_start_date", "ca_affiliation", "ca_active") VALUES (24243, 'beltran@bitnami.com', 'Helper Script', NULL, 'Dawn''s vmware_mapping JSON', '2020-04-28 18:52:49', '2020-04-28 18:52:49', '1970-01-01', 'VMware', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_start_date", "ca_affiliation", "ca_active") VALUES (24244, 'angel@bitnami.com', 'Helper Script', NULL, 'Dawn''s vmware_mapping JSON', '2020-04-28 18:52:49', '2020-04-28 18:52:49', '1970-01-01', 'VMware', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_start_date", "ca_affiliation", "ca_active") VALUES (24245, 'Angelmmiguel@users.noreply.github.com', 'Helper Script', NULL, 'Dawn''s vmware_mapping JSON', '2020-04-28 18:52:49', '2020-04-28 18:52:49', '1970-01-01', 'VMware', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_start_date", "ca_affiliation", "ca_active") VALUES (24246, 'rcampuzano82@gmail.com', 'Helper Script', NULL, 'Dawn''s vmware_mapping JSON', '2020-04-28 18:52:49', '2020-04-28 18:52:49', '1970-01-01', 'VMware', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_start_date", "ca_affiliation", "ca_active") VALUES (24247, 'andy@heptio.com', 'Helper Script', NULL, 'Dawn''s vmware_mapping JSON', '2020-04-28 18:52:49', '2020-04-28 18:52:49', '1970-01-01', 'VMware', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_start_date", "ca_affiliation", "ca_active") VALUES (24248, 'andy.goldstein@gmail.com', 'Helper Script', NULL, 'Dawn''s vmware_mapping JSON', '2020-04-28 18:52:49', '2020-04-28 18:52:49', '1970-01-01', 'VMware', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_start_date", "ca_affiliation", "ca_active") VALUES (24249, 'goldsteina@vmware.com', 'Helper Script', NULL, 'Dawn''s vmware_mapping JSON', '2020-04-28 18:52:49', '2020-04-28 18:52:49', '1970-01-01', 'VMware', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_start_date", "ca_affiliation", "ca_active") VALUES (24250, 'nolan@heptio.com', 'Helper Script', NULL, 'Dawn''s vmware_mapping JSON', '2020-04-28 18:52:49', '2020-04-28 18:52:49', '1970-01-01', 'VMware', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_start_date", "ca_affiliation", "ca_active") VALUES (27291, 'brubakern@vmware.com', 'Helper Script', NULL, 'Dawn''s vmware_mapping JSON', '2020-04-28 18:52:49', '2020-04-28 18:52:49', '1970-01-01', 'VMware', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_start_date", "ca_affiliation", "ca_active") VALUES (24252, 'nolan@nbrubaker.com', 'Helper Script', NULL, 'Dawn''s vmware_mapping JSON', '2020-04-28 18:52:49', '2020-04-28 18:52:49', '1970-01-01', 'VMware', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_start_date", "ca_affiliation", "ca_active") VALUES (24253, 'stevek@heptio.com', 'Helper Script', NULL, 'Dawn''s vmware_mapping JSON', '2020-04-28 18:52:49', '2020-04-28 18:52:49', '1970-01-01', 'VMware', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_start_date", "ca_affiliation", "ca_active") VALUES (24254, 'steve@heptio.com', 'Helper Script', NULL, 'Dawn''s vmware_mapping JSON', '2020-04-28 18:52:49', '2020-04-28 18:52:49', '1970-01-01', 'VMware', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_start_date", "ca_affiliation", "ca_active") VALUES (24255, 'stephen.kriss@gmail.com', 'Helper Script', NULL, 'Dawn''s vmware_mapping JSON', '2020-04-28 18:52:49', '2020-04-28 18:52:49', '1970-01-01', 'VMware', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_start_date", "ca_affiliation", "ca_active") VALUES (24256, 'krisss@vmware.com', 'Helper Script', NULL, 'Dawn''s vmware_mapping JSON', '2020-04-28 18:52:49', '2020-04-28 18:52:49', '1970-01-01', 'VMware', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_start_date", "ca_affiliation", "ca_active") VALUES (24257, 'carlisia@heptio.com', 'Helper Script', NULL, 'Dawn''s vmware_mapping JSON', '2020-04-28 18:52:49', '2020-04-28 18:52:49', '1970-01-01', 'VMware', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_start_date", "ca_affiliation", "ca_active") VALUES (24258, 'carlisia@grokkingtech.io', 'Helper Script', NULL, 'Dawn''s vmware_mapping JSON', '2020-04-28 18:52:49', '2020-04-28 18:52:49', '1970-01-01', 'VMware', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_start_date", "ca_affiliation", "ca_active") VALUES (24259, 'carlisiac@vmware.com', 'Helper Script', NULL, 'Dawn''s vmware_mapping JSON', '2020-04-28 18:52:49', '2020-04-28 18:52:49', '1970-01-01', 'VMware', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_start_date", "ca_affiliation", "ca_active") VALUES (24260, 'carlisia@vmware.com', 'Helper Script', NULL, 'Dawn''s vmware_mapping JSON', '2020-04-28 18:52:49', '2020-04-28 18:52:49', '1970-01-01', 'VMware', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_start_date", "ca_affiliation", "ca_active") VALUES (24261, 'wayne@heptio.com', 'Helper Script', NULL, 'Dawn''s vmware_mapping JSON', '2020-04-28 18:52:49', '2020-04-28 18:52:49', '1970-01-01', 'VMware', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_start_date", "ca_affiliation", "ca_active") VALUES (24262, 'wayne@riotousliving.com', 'Helper Script', NULL, 'Dawn''s vmware_mapping JSON', '2020-04-28 18:52:49', '2020-04-28 18:52:49', '1970-01-01', 'VMware', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_start_date", "ca_affiliation", "ca_active") VALUES (24263, 'wwitzel3@vmware.com', 'Helper Script', NULL, 'Dawn''s vmware_mapping JSON', '2020-04-28 18:52:49', '2020-04-28 18:52:49', '1970-01-01', 'VMware', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_start_date", "ca_affiliation", "ca_active") VALUES (24264, 'jennifer@heptio.com', 'Helper Script', NULL, 'Dawn''s vmware_mapping JSON', '2020-04-28 18:52:49', '2020-04-28 18:52:49', '1970-01-01', 'VMware', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_start_date", "ca_affiliation", "ca_active") VALUES (24265, 'jrondeau@heptio.com', 'Helper Script', NULL, 'Dawn''s vmware_mapping JSON', '2020-04-28 18:52:49', '2020-04-28 18:52:49', '1970-01-01', 'VMware', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_start_date", "ca_affiliation", "ca_active") VALUES (24266, 'Bradamant3@users.noreply.github.com', 'Helper Script', NULL, 'Dawn''s vmware_mapping JSON', '2020-04-28 18:52:49', '2020-04-28 18:52:49', '1970-01-01', 'VMware', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_start_date", "ca_affiliation", "ca_active") VALUES (24267, 'aadnan@vmware.com', 'Helper Script', NULL, 'Dawn''s vmware_mapping JSON', '2020-04-28 18:52:49', '2020-04-28 18:52:49', '1970-01-01', 'VMware', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_start_date", "ca_affiliation", "ca_active") VALUES (24268, 'dave@heptio.com', 'Helper Script', NULL, 'Dawn''s vmware_mapping JSON', '2020-04-28 18:52:49', '2020-04-28 18:52:49', '1970-01-01', 'VMware', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_start_date", "ca_affiliation", "ca_active") VALUES (24269, 'dave@cheney.net', 'Helper Script', NULL, 'Dawn''s vmware_mapping JSON', '2020-04-28 18:52:49', '2020-04-28 18:52:49', '1970-01-01', 'VMware', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_start_date", "ca_affiliation", "ca_active") VALUES (24270, 'steves@heptio.com', 'Helper Script', NULL, 'Dawn''s vmware_mapping JSON', '2020-04-28 18:52:49', '2020-04-28 18:52:49', '1970-01-01', 'VMware', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_start_date", "ca_affiliation", "ca_active") VALUES (24271, 'steve@stevesloka.com', 'Helper Script', NULL, 'Dawn''s vmware_mapping JSON', '2020-04-28 18:52:49', '2020-04-28 18:52:49', '1970-01-01', 'VMware', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_start_date", "ca_affiliation", "ca_active") VALUES (24272, 'slokas@vmware.com', 'Helper Script', NULL, 'Dawn''s vmware_mapping JSON', '2020-04-28 18:52:49', '2020-04-28 18:52:49', '1970-01-01', 'VMware', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_start_date", "ca_affiliation", "ca_active") VALUES (24273, 'ynick@heptio.com', 'Helper Script', NULL, 'Dawn''s vmware_mapping JSON', '2020-04-28 18:52:49', '2020-04-28 18:52:49', '1970-01-01', 'VMware', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_start_date", "ca_affiliation", "ca_active") VALUES (24274, 'inocuo@gmail.com', 'Helper Script', NULL, 'Dawn''s vmware_mapping JSON', '2020-04-28 18:52:49', '2020-04-28 18:52:49', '1970-01-01', 'VMware', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_start_date", "ca_affiliation", "ca_active") VALUES (24275, 'ynick@vmware.com', 'Helper Script', NULL, 'Dawn''s vmware_mapping JSON', '2020-04-28 18:52:49', '2020-04-28 18:52:49', '1970-01-01', 'VMware', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_start_date", "ca_affiliation", "ca_active") VALUES (24276, 'jpeach@vmware.com', 'Helper Script', NULL, 'Dawn''s vmware_mapping JSON', '2020-04-28 18:52:49', '2020-04-28 18:52:49', '1970-01-01', 'VMware', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_start_date", "ca_affiliation", "ca_active") VALUES (24277, 'ross@heptio.com', 'Helper Script', NULL, 'Dawn''s vmware_mapping JSON', '2020-04-28 18:52:49', '2020-04-28 18:52:49', '1970-01-01', 'VMware', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_start_date", "ca_affiliation", "ca_active") VALUES (24278, 'ross@kukulinski.com', 'Helper Script', NULL, 'Dawn''s vmware_mapping JSON', '2020-04-28 18:52:49', '2020-04-28 18:52:49', '1970-01-01', 'VMware', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_start_date", "ca_affiliation", "ca_active") VALUES (24279, 'ralph@heptio.com', 'Helper Script', NULL, 'Dawn''s vmware_mapping JSON', '2020-04-28 18:52:49', '2020-04-28 18:52:49', '1970-01-01', 'VMware', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_start_date", "ca_affiliation", "ca_active") VALUES (24280, 'ralph.l.bankston@gmail.com', 'Helper Script', NULL, 'Dawn''s vmware_mapping JSON', '2020-04-28 18:52:49', '2020-04-28 18:52:49', '1970-01-01', 'VMware', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_start_date", "ca_affiliation", "ca_active") VALUES (24281, 'alex_brand@heptio.com', 'Helper Script', NULL, 'Dawn''s vmware_mapping JSON', '2020-04-28 18:52:49', '2020-04-28 18:52:49', '1970-01-01', 'VMware', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_start_date", "ca_affiliation", "ca_active") VALUES (24282, 'alexbrand09@gmail.com', 'Helper Script', NULL, 'Dawn''s vmware_mapping JSON', '2020-04-28 18:52:49', '2020-04-28 18:52:49', '1970-01-01', 'VMware', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_start_date", "ca_affiliation", "ca_active") VALUES (24283, 'joe@heptio.com', 'Helper Script', NULL, 'Dawn''s vmware_mapping JSON', '2020-04-28 18:52:49', '2020-04-28 18:52:49', '1970-01-01', 'VMware', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_start_date", "ca_affiliation", "ca_active") VALUES (24284, 'joe.github@bedafamily.com', 'Helper Script', NULL, 'Dawn''s vmware_mapping JSON', '2020-04-28 18:52:49', '2020-04-28 18:52:49', '1970-01-01', 'VMware', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_start_date", "ca_affiliation", "ca_active") VALUES (24285, 'vince@heptio.com', 'Helper Script', NULL, 'Dawn''s vmware_mapping JSON', '2020-04-28 18:52:49', '2020-04-28 18:52:49', '1970-01-01', 'VMware', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_start_date", "ca_affiliation", "ca_active") VALUES (24286, 'vince@vincepri.com', 'Helper Script', NULL, 'Dawn''s vmware_mapping JSON', '2020-04-28 18:52:49', '2020-04-28 18:52:49', '1970-01-01', 'VMware', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_start_date", "ca_affiliation", "ca_active") VALUES (24287, 'chuck@heptio.com', 'Helper Script', NULL, 'Dawn''s vmware_mapping JSON', '2020-04-28 18:52:49', '2020-04-28 18:52:49', '1970-01-01', 'VMware', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_start_date", "ca_affiliation", "ca_active") VALUES (24288, 'ha.chuck@gmail.com', 'Helper Script', NULL, 'Dawn''s vmware_mapping JSON', '2020-04-28 18:52:49', '2020-04-28 18:52:49', '1970-01-01', 'VMware', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_start_date", "ca_affiliation", "ca_active") VALUES (24289, 'jason@heptio.com', 'Helper Script', NULL, 'Dawn''s vmware_mapping JSON', '2020-04-28 18:52:49', '2020-04-28 18:52:49', '1970-01-01', 'VMware', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_start_date", "ca_affiliation", "ca_active") VALUES (24290, 'detiber@gmail.com', 'Helper Script', NULL, 'Dawn''s vmware_mapping JSON', '2020-04-28 18:52:49', '2020-04-28 18:52:49', '1970-01-01', 'VMware', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_start_date", "ca_affiliation", "ca_active") VALUES (24291, 'detiberusj@vmware.com', 'Helper Script', NULL, 'Dawn''s vmware_mapping JSON', '2020-04-28 18:52:49', '2020-04-28 18:52:49', '1970-01-01', 'VMware', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_start_date", "ca_affiliation", "ca_active") VALUES (24292, 'liz@heptio.com', 'Helper Script', NULL, 'Dawn''s vmware_mapping JSON', '2020-04-28 18:52:49', '2020-04-28 18:52:49', '1970-01-01', 'VMware', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_start_date", "ca_affiliation", "ca_active") VALUES (24293, '.*liztio@users.noreply.github.com', 'Helper Script', NULL, 'Dawn''s vmware_mapping JSON', '2020-04-28 18:52:49', '2020-04-28 18:52:49', '1970-01-01', 'VMware', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_start_date", "ca_affiliation", "ca_active") VALUES (24294, 'naadir@heptio.com', 'Helper Script', NULL, 'Dawn''s vmware_mapping JSON', '2020-04-28 18:52:49', '2020-04-28 18:52:49', '1970-01-01', 'VMware', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_start_date", "ca_affiliation", "ca_active") VALUES (24295, 'naadir@randomvariable.co.uk', 'Helper Script', NULL, 'Dawn''s vmware_mapping JSON', '2020-04-28 18:52:49', '2020-04-28 18:52:49', '1970-01-01', 'VMware', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_start_date", "ca_affiliation", "ca_active") VALUES (24296, 'randomvariable@users.noreply.github.com', 'Helper Script', NULL, 'Dawn''s vmware_mapping JSON', '2020-04-28 18:52:49', '2020-04-28 18:52:49', '1970-01-01', 'VMware', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_start_date", "ca_affiliation", "ca_active") VALUES (24297, 'ruben@heptio.com', 'Helper Script', NULL, 'Dawn''s vmware_mapping JSON', '2020-04-28 18:52:49', '2020-04-28 18:52:49', '1970-01-01', 'VMware', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_start_date", "ca_affiliation", "ca_active") VALUES (24298, 'rubenoz@gmail.com', 'Helper Script', NULL, 'Dawn''s vmware_mapping JSON', '2020-04-28 18:52:49', '2020-04-28 18:52:49', '1970-01-01', 'VMware', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_start_date", "ca_affiliation", "ca_active") VALUES (24299, 'rdodev@vmware.com', 'Helper Script', NULL, 'Dawn''s vmware_mapping JSON', '2020-04-28 18:52:49', '2020-04-28 18:52:49', '1970-01-01', 'VMware', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_start_date", "ca_affiliation", "ca_active") VALUES (25300, 'tstclair@heptio.com', 'Helper Script', NULL, 'Dawn''s vmware_mapping JSON', '2020-04-28 18:52:49', '2020-04-28 18:52:49', '1970-01-01', 'VMware', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_start_date", "ca_affiliation", "ca_active") VALUES (25301, 'timothysc@users.noreply.github.com', 'Helper Script', NULL, 'Dawn''s vmware_mapping JSON', '2020-04-28 18:52:49', '2020-04-28 18:52:49', '1970-01-01', 'VMware', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_start_date", "ca_affiliation", "ca_active") VALUES (25302, 'craigtracey@gmail.com', 'Helper Script', NULL, 'Dawn''s vmware_mapping JSON', '2020-04-28 18:52:49', '2020-04-28 18:52:49', '1970-01-01', 'VMware', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_start_date", "ca_affiliation", "ca_active") VALUES (25303, 'luohui925@gmail.com', 'Helper Script', NULL, 'Dawn''s vmware_mapping JSON', '2020-04-28 18:52:49', '2020-04-28 18:52:49', '1970-01-01', 'VMware', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_start_date", "ca_affiliation", "ca_active") VALUES (25304, 'davanum@gmail.com', 'Helper Script', NULL, 'Dawn''s vmware_mapping JSON', '2020-04-28 18:52:49', '2020-04-28 18:52:49', '1970-01-01', 'VMware', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_start_date", "ca_affiliation", "ca_active") VALUES (25305, 'amy@users.noreply.github.com', 'Helper Script', NULL, 'Dawn''s vmware_mapping JSON', '2020-04-28 18:52:49', '2020-04-28 18:52:49', '1970-01-01', 'VMware', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_start_date", "ca_affiliation", "ca_active") VALUES (25306, 'bryanliles@gmail.com', 'Helper Script', NULL, 'Dawn''s vmware_mapping JSON', '2020-04-28 18:52:49', '2020-04-28 18:52:49', '1970-01-01', 'VMware', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_start_date", "ca_affiliation", "ca_active") VALUES (25307, 'bryan@Bryans-MacBook-Pro.local', 'Helper Script', NULL, 'Dawn''s vmware_mapping JSON', '2020-04-28 18:52:49', '2020-04-28 18:52:49', '1970-01-01', 'VMware', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_start_date", "ca_affiliation", "ca_active") VALUES (25308, 'lilesb@vmware.com', 'Helper Script', NULL, 'Dawn''s vmware_mapping JSON', '2020-04-28 18:52:49', '2020-04-28 18:52:49', '1970-01-01', 'VMware', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_start_date", "ca_affiliation", "ca_active") VALUES (25309, 'sfoohei@gmail.com', 'Helper Script', NULL, 'Dawn''s vmware_mapping JSON', '2020-04-28 18:52:49', '2020-04-28 18:52:49', '1970-01-01', 'VMware', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_start_date", "ca_affiliation", "ca_active") VALUES (25310, 'foos@vmware.com', 'Helper Script', NULL, 'Dawn''s vmware_mapping JSON', '2020-04-28 18:52:49', '2020-04-28 18:52:49', '1970-01-01', 'VMware', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_start_date", "ca_affiliation", "ca_active") VALUES (25311, 'mlandaverde@heptio.com', 'Helper Script', NULL, 'Dawn''s vmware_mapping JSON', '2020-04-28 18:52:49', '2020-04-28 18:52:49', '1970-01-01', 'VMware', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_start_date", "ca_affiliation", "ca_active") VALUES (25312, 'mdaverde@users.noreply.github.com', 'Helper Script', NULL, 'Dawn''s vmware_mapping JSON', '2020-04-28 18:52:49', '2020-04-28 18:52:49', '1970-01-01', 'VMware', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_start_date", "ca_affiliation", "ca_active") VALUES (25313, 'shomron@gmail.com', 'Helper Script', NULL, 'Dawn''s vmware_mapping JSON', '2020-04-28 18:52:49', '2020-04-28 18:52:49', '1970-01-01', 'VMware', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_start_date", "ca_affiliation", "ca_active") VALUES (25314, 'derek@heptio.com', 'Helper Script', NULL, 'Dawn''s vmware_mapping JSON', '2020-04-28 18:52:49', '2020-04-28 18:52:49', '1970-01-01', 'VMware', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_start_date", "ca_affiliation", "ca_active") VALUES (25315, 'jderekwilson@gmail.com', 'Helper Script', NULL, 'Dawn''s vmware_mapping JSON', '2020-04-28 18:52:49', '2020-04-28 18:52:49', '1970-01-01', 'VMware', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_start_date", "ca_affiliation", "ca_active") VALUES (25316, 'eric@heptio.com', 'Helper Script', NULL, 'Dawn''s vmware_mapping JSON', '2020-04-28 18:52:49', '2020-04-28 18:52:49', '1970-01-01', 'VMware', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_start_date", "ca_affiliation", "ca_active") VALUES (25317, 'kate.kuchin@gmail.com', 'Helper Script', NULL, 'Dawn''s vmware_mapping JSON', '2020-04-28 18:52:49', '2020-04-28 18:52:49', '1970-01-01', 'VMware', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_start_date", "ca_affiliation", "ca_active") VALUES (25318, 'suraci.alex@gmail.com', 'Helper Script', NULL, 'Dawn''s vmware_mapping JSON', '2020-04-28 18:52:49', '2020-04-28 18:52:49', '1970-01-01', 'VMware', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_start_date", "ca_affiliation", "ca_active") VALUES (25319, 'asuraci@pivotal.io', 'Helper Script', NULL, 'Dawn''s vmware_mapping JSON', '2020-04-28 18:52:49', '2020-04-28 18:52:49', '1970-01-01', 'VMware', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_start_date", "ca_affiliation", "ca_active") VALUES (25320, 'alex@localhost.localdomain', 'Helper Script', NULL, 'Dawn''s vmware_mapping JSON', '2020-04-28 18:52:49', '2020-04-28 18:52:49', '1970-01-01', 'VMware', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_start_date", "ca_affiliation", "ca_active") VALUES (25321, 'julian.zucker@gmail.com', 'Helper Script', NULL, 'Dawn''s vmware_mapping JSON', '2020-04-28 18:52:49', '2020-04-28 18:52:49', '1970-01-01', 'VMware', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_start_date", "ca_affiliation", "ca_active") VALUES (25322, 'sahil.muthoo@gmail.com', 'Helper Script', NULL, 'Dawn''s vmware_mapping JSON', '2020-04-28 18:52:49', '2020-04-28 18:52:49', '1970-01-01', 'VMware', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_start_date", "ca_affiliation", "ca_active") VALUES (25323, 'fali@pivotal.io', 'Helper Script', NULL, 'Dawn''s vmware_mapping JSON', '2020-04-28 18:52:49', '2020-04-28 18:52:49', '1970-01-01', 'VMware', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_start_date", "ca_affiliation", "ca_active") VALUES (25324, 'fai28683@gmail.com', 'Helper Script', NULL, 'Dawn''s vmware_mapping JSON', '2020-04-28 18:52:49', '2020-04-28 18:52:49', '1970-01-01', 'VMware', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_start_date", "ca_affiliation", "ca_active") VALUES (25325, 'dgarnier@pivotal.io', 'Helper Script', NULL, 'Dawn''s vmware_mapping JSON', '2020-04-28 18:52:49', '2020-04-28 18:52:49', '1970-01-01', 'VMware', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_start_date", "ca_affiliation", "ca_active") VALUES (25326, 'git@garnier.wf', 'Helper Script', NULL, 'Dawn''s vmware_mapping JSON', '2020-04-28 18:52:49', '2020-04-28 18:52:49', '1970-01-01', 'VMware', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_start_date", "ca_affiliation", "ca_active") VALUES (25327, 'matthew.heidemann@gmail.com', 'Helper Script', NULL, 'Dawn''s vmware_mapping JSON', '2020-04-28 18:52:49', '2020-04-28 18:52:49', '1970-01-01', 'VMware', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_start_date", "ca_affiliation", "ca_active") VALUES (25328, 'me@lurraca.com', 'Helper Script', NULL, 'Dawn''s vmware_mapping JSON', '2020-04-28 18:52:49', '2020-04-28 18:52:49', '1970-01-01', 'VMware', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_start_date", "ca_affiliation", "ca_active") VALUES (25329, 'lurraca@pivotal.io', 'Helper Script', NULL, 'Dawn''s vmware_mapping JSON', '2020-04-28 18:52:49', '2020-04-28 18:52:49', '1970-01-01', 'VMware', 1) ON CONFLICT DO NOTHING; - -update "augur_operations"."augur_settings" set value = 43 where setting = 'augur_data_version'; - - -COMMIT; - - - - - - -ALTER TABLE "augur_data"."pull_request_analysis" ALTER COLUMN "merge_probability" TYPE numeric(256,250) USING "merge_probability"::numeric(256,250); - -ALTER TABLE "augur_data"."pull_requests" ALTER COLUMN "repo_id" SET DEFAULT 0; - -COMMENT ON CONSTRAINT "fk_repo_repo_groups_1" ON "augur_data"."repo" IS 'Repo_groups cardinality set to one and only one because, although in theory there could be more than one repo group for a repo, this might create dependencies in hosted situation that we do not want to live with. '; - -CREATE INDEX IF NOT EXISTS "probability_idx" ON "augur_data"."pull_request_analysis" USING btree ( - "merge_probability" "pg_catalog"."numeric_ops" DESC NULLS LAST -); - - -update "augur_operations"."augur_settings" set value = 44 where setting = 'augur_data_version'; -COMMIT; - - - - - - -CREATE SEQUENCE IF "augur_operations"."affiliations_corp_id_seq" -INCREMENT 1 -MINVALUE 1 -MAXVALUE 9223372036854775807 -START 620000 -CACHE 1; - -CREATE SEQUENCE "augur_operations"."worker_oauth_oauth_id_seq" -INCREMENT 1 -MINVALUE 1 -MAXVALUE 9223372036854775807 -START 620000 -CACHE 1; - -COMMENT ON TABLE "augur_operations"."augur_settings" IS 'Augur settings include the schema version, and the Augur API Key as of 10/25/2020. Future augur settings may be stored in this table, which has the basic structure of a name-value pair. '; - -COMMENT ON TABLE "augur_operations"."repos_fetch_log" IS 'For future use when we move all working tables to the augur_operations schema. '; - -COMMENT ON TABLE "augur_operations"."worker_history" IS 'This table stores the complete history of job execution, including success and failure. It is useful for troubleshooting. '; - -COMMENT ON TABLE "augur_operations"."worker_job" IS 'This table stores the jobs workers collect data for. A job is found in the code, and in the augur.config.json under the construct of a “model”. '; - -ALTER TABLE "augur_operations"."worker_job" ALTER COLUMN "description" SET DEFAULT 'None'::character varying; - -COMMENT ON TABLE "augur_operations"."worker_oauth" IS 'This table stores credentials for retrieving data from platform API’s. Entries in this table must comply with the terms of service for each platform. '; - -ALTER TABLE "augur_operations"."worker_oauth" ALTER COLUMN "oauth_id" TYPE int8 USING "oauth_id"::int8; - -ALTER TABLE "augur_operations"."worker_oauth" ALTER COLUMN "oauth_id" SET DEFAULT nextval('"augur_operations".worker_oauth_oauth_id_seq'::regclass); - -ALTER TABLE "augur_operations"."worker_oauth" ADD CONSTRAINT "worker_oauth_pkey" PRIMARY KEY ("oauth_id"); - -COMMENT ON TABLE "augur_operations"."worker_settings_facade" IS 'For future use when we move all working tables to the augur_operations schema. '; - -COMMENT ON TABLE "augur_operations"."working_commits" IS 'For future use when we move all working tables to the augur_operations schema. '; - -SELECT setval('"augur_operations"."affiliations_corp_id_seq"', 1, false); - -ALTER SEQUENCE "augur_operations"."affiliations_corp_id_seq" OWNER TO "augur"; - -SELECT setval('"augur_operations"."gh_worker_history_history_id_seq"', 6300000, true); - -SELECT setval('"augur_operations"."worker_oauth_oauth_id_seq"', 6300000, true); - -ALTER SEQUENCE "augur_operations"."worker_oauth_oauth_id_seq" OWNER TO "augur"; - -CREATE INDEX "repos_id,statusops" ON "augur_operations"."repos_fetch_log" USING btree ( - "repos_id" "pg_catalog"."int4_ops" ASC NULLS LAST, - "status" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST -); - - - -update "augur_operations"."augur_settings" set value = 45 where setting = 'augur_data_version'; - - - - - --- ---------------------------- --- Table structure for contributor_repo --- ---------------------------- - -BEGIN; - -DROP TABLE IF EXISTS "augur_data"."contributor_repo"; - - -CREATE TABLE IF NOT EXISTS "augur_data"."contributor_repo" ( - "cntrb_repo_id" SERIAL8, - "cntrb_id" int8 NOT NULL, - "repo_git" varchar COLLATE "pg_catalog"."default" NOT NULL, - "tool_source" varchar COLLATE "pg_catalog"."default", - "tool_version" varchar COLLATE "pg_catalog"."default", - "data_source" varchar COLLATE "pg_catalog"."default", - "data_collection_date" timestamp(0) DEFAULT CURRENT_TIMESTAMP, - "repo_name" varchar(255) COLLATE "pg_catalog"."default" NOT NULL, - "gh_repo_id" int8 NOT NULL, - "cntrb_category" varchar(255) COLLATE "pg_catalog"."default", - "event_id" int8 -) -; -ALTER TABLE "augur_data"."contributor_repo" OWNER TO "augur"; -COMMENT ON COLUMN "augur_data"."contributor_repo"."cntrb_id" IS 'This is not null because what is the point without the contributor in this table? '; -COMMENT ON COLUMN "augur_data"."contributor_repo"."repo_git" IS 'Similar to cntrb_id, we need this data for the table to have meaningful data. '; -COMMENT ON TABLE "augur_data"."contributor_repo" IS 'Developed in Partnership with Andrew Brain. -
From: 

[ - { - "login": "octocat", - "id": 1, - "node_id": "MDQ6VXNlcjE=", - "avatar_url": "https://github.com/images/error/octocat_happy.gif", - "gravatar_id": "", - "url": "https://api.github.com/users/octocat", - "html_url": "https://github.com/octocat", - "followers_url": "https://api.github.com/users/octocat/followers", - "following_url": "https://api.github.com/users/octocat/following{/other_user}", - "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", - "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", - "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", - "organizations_url": "https://api.github.com/users/octocat/orgs", - "repos_url": "https://api.github.com/users/octocat/repos", - "events_url": "https://api.github.com/users/octocat/events{/privacy}", - "received_events_url": "https://api.github.com/users/octocat/received_events", - "type": "User", - "site_admin": false - } -] -




'; - --- ---------------------------- --- Primary Key structure for table contributor_repo --- ---------------------------- -ALTER TABLE "augur_data"."contributor_repo" DROP CONSTRAINT "cntrb_repo_id_key"; - -ALTER TABLE "augur_data"."contributor_repo" ADD CONSTRAINT "cntrb_repo_id_key" PRIMARY KEY ("cntrb_repo_id"); - --- ---------------------------- --- Foreign Keys structure for table contributor_repo --- ---------------------------- -ALTER TABLE "augur_data"."contributor_repo" DROP CONSTRAINT "fk_contributor_repo_contributors_1"; - -ALTER TABLE "augur_data"."contributor_repo" ADD CONSTRAINT "fk_contributor_repo_contributors_1" FOREIGN KEY ("cntrb_id") REFERENCES "augur_data"."contributors" ("cntrb_id") ON DELETE RESTRICT ON UPDATE CASCADE; - -update "augur_operations"."augur_settings" set value = 46 where setting = 'augur_data_version'; - - -COMMIT; - - ---------47-------------- - -BEGIN; - --- ---------------------------- --- Table structure for contributor_repo --- ---------------------------- - -BEGIN; - -DROP TABLE IF EXISTS "augur_data"."contributor_repo"; - - -CREATE TABLE IF NOT EXISTS "augur_data"."contributor_repo" ( - "cntrb_repo_id" SERIAL8, - "cntrb_id" int8 NOT NULL, - "repo_git" varchar COLLATE "pg_catalog"."default" NOT NULL, - "tool_source" varchar COLLATE "pg_catalog"."default", - "tool_version" varchar COLLATE "pg_catalog"."default", - "data_source" varchar COLLATE "pg_catalog"."default", - "data_collection_date" timestamp(0) DEFAULT CURRENT_TIMESTAMP, - "repo_name" varchar(255) COLLATE "pg_catalog"."default" NOT NULL, - "gh_repo_id" int8 NOT NULL, - "cntrb_category" varchar(255) COLLATE "pg_catalog"."default", - "event_id" int8 -) -; -ALTER TABLE "augur_data"."contributor_repo" OWNER TO "augur"; -COMMENT ON COLUMN "augur_data"."contributor_repo"."cntrb_id" IS 'This is not null because what is the point without the contributor in this table? '; -COMMENT ON COLUMN "augur_data"."contributor_repo"."repo_git" IS 'Similar to cntrb_id, we need this data for the table to have meaningful data. '; -COMMENT ON TABLE "augur_data"."contributor_repo" IS 'Developed in Partnership with Andrew Brain. -
From: 

[ - { - "login": "octocat", - "id": 1, - "node_id": "MDQ6VXNlcjE=", - "avatar_url": "https://github.com/images/error/octocat_happy.gif", - "gravatar_id": "", - "url": "https://api.github.com/users/octocat", - "html_url": "https://github.com/octocat", - "followers_url": "https://api.github.com/users/octocat/followers", - "following_url": "https://api.github.com/users/octocat/following{/other_user}", - "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", - "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", - "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", - "organizations_url": "https://api.github.com/users/octocat/orgs", - "repos_url": "https://api.github.com/users/octocat/repos", - "events_url": "https://api.github.com/users/octocat/events{/privacy}", - "received_events_url": "https://api.github.com/users/octocat/received_events", - "type": "User", - "site_admin": false - } -] -




'; - --- ---------------------------- --- Primary Key structure for table contributor_repo --- ---------------------------- -ALTER TABLE "augur_data"."contributor_repo" DROP CONSTRAINT "cntrb_repo_id_key"; - -ALTER TABLE "augur_data"."contributor_repo" ADD CONSTRAINT "cntrb_repo_id_key" PRIMARY KEY ("cntrb_repo_id"); - --- ---------------------------- --- Foreign Keys structure for table contributor_repo --- ---------------------------- -ALTER TABLE "augur_data"."contributor_repo" DROP CONSTRAINT "fk_contributor_repo_contributors_1"; - -ALTER TABLE "augur_data"."contributor_repo" ADD CONSTRAINT "fk_contributor_repo_contributors_1" FOREIGN KEY ("cntrb_id") REFERENCES "augur_data"."contributors" ("cntrb_id") ON DELETE RESTRICT ON UPDATE CASCADE; - -update "augur_operations"."augur_settings" set value = 46 where setting = 'augur_data_version'; - - -COMMIT; - - ---------47-------------- - -BEGIN; - --- ---------------------------- --- Table structure for contributor_repo --- ---------------------------- -DROP TABLE IF EXISTS "augur_data"."contributor_repo"; -CREATE TABLE "augur_data"."contributor_repo" ( - "cntrb_repo_id" int4 NOT NULL DEFAULT nextval('"augur_data".contributor_repo_cntrb_repo_id_seq'::regclass), - "cntrb_id" int8 NOT NULL, - "repo_git" varchar COLLATE "pg_catalog"."default" NOT NULL, - "tool_source" varchar COLLATE "pg_catalog"."default", - "tool_version" varchar COLLATE "pg_catalog"."default", - "data_source" varchar COLLATE "pg_catalog"."default", - "data_collection_date" timestamp(0) DEFAULT CURRENT_TIMESTAMP, - "repo_name" varchar(255) COLLATE "pg_catalog"."default" NOT NULL, - "gh_repo_id" int8 NOT NULL, - "cntrb_category" varchar(255) COLLATE "pg_catalog"."default", - "event_id" int8, - "created_at" timestamp(0) -) -; -ALTER TABLE "augur_data"."contributor_repo" OWNER TO "augur"; -COMMENT ON COLUMN "augur_data"."contributor_repo"."cntrb_id" IS 'This is not null because what is the point without the contributor in this table? '; -COMMENT ON COLUMN "augur_data"."contributor_repo"."repo_git" IS 'Similar to cntrb_id, we need this data for the table to have meaningful data. '; -COMMENT ON TABLE "augur_data"."contributor_repo" IS 'Developed in Partnership with Andrew Brain. -
From: 

[ - { - "login": "octocat", - "id": 1, - "node_id": "MDQ6VXNlcjE=", - "avatar_url": "https://github.com/images/error/octocat_happy.gif", - "gravatar_id": "", - "url": "https://api.github.com/users/octocat", - "html_url": "https://github.com/octocat", - "followers_url": "https://api.github.com/users/octocat/followers", - "following_url": "https://api.github.com/users/octocat/following{/other_user}", - "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", - "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", - "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", - "organizations_url": "https://api.github.com/users/octocat/orgs", - "repos_url": "https://api.github.com/users/octocat/repos", - "events_url": "https://api.github.com/users/octocat/events{/privacy}", - "received_events_url": "https://api.github.com/users/octocat/received_events", - "type": "User", - "site_admin": false - } -] -




'; - - --- ---------------------------- --- Primary Key structure for table contributor_repo --- ---------------------------- -ALTER TABLE "augur_data"."contributor_repo" DROP CONSTRAINT IF EXISTS "cntrb_repo_id_key"; - -ALTER TABLE "augur_data"."contributor_repo" ADD CONSTRAINT "cntrb_repo_id_key" PRIMARY KEY ("cntrb_repo_id"); - --- ---------------------------- --- Foreign Keys structure for table contributor_repo --- ---------------------------- -ALTER TABLE "augur_data"."contributor_repo" DROP CONSTRAINT IF EXISTS "fk_contributor_repo_contributors_1"; - -ALTER TABLE "augur_data"."contributor_repo" ADD CONSTRAINT "fk_contributor_repo_contributors_1" FOREIGN KEY ("cntrb_id") REFERENCES "augur_data"."contributors" ("cntrb_id") ON DELETE RESTRICT ON UPDATE CASCADE; - -update "augur_operations"."augur_settings" set value = 47 where setting = 'augur_data_version'; - - -COMMIT; - - -BEGIN; - -ALTER TABLE "augur_data"."topic_words" - DROP CONSTRAINT IF EXISTS "fk_topic_words_repo_topic_1"; - -update "augur_operations"."augur_settings" set value = 48 where setting = 'augur_data_version'; - - -COMMIT; - - - - diff --git a/schema/20201025-Release-0.14.0.sql b/schema/20201025-Release-0.14.0.sql deleted file mode 100644 index 851ed4d7f0..0000000000 --- a/schema/20201025-Release-0.14.0.sql +++ /dev/null @@ -1,4412 +0,0 @@ --- #SPDX-License-Identifier: MIT --- ---------------------------- - -CREATE SCHEMA IF NOT EXISTS augur_data; -CREATE SCHEMA IF NOT EXISTS augur_operations; -CREATE SCHEMA IF NOT EXISTS spdx; --- create the schemas --- ----------------------- - --- ---------------------------- --- Sequence structure for annotation_types_annotation_type_id_seq --- ---------------------------- -DROP SEQUENCE IF EXISTS "spdx"."annotation_types_annotation_type_id_seq"; -CREATE SEQUENCE "spdx"."annotation_types_annotation_type_id_seq" -INCREMENT 1 -MINVALUE 1 -MAXVALUE 2147483647 -START 1 -CACHE 1; -ALTER SEQUENCE "spdx"."annotation_types_annotation_type_id_seq" OWNER TO "augur"; - --- ---------------------------- --- Sequence structure for annotations_annotation_id_seq --- ---------------------------- -DROP SEQUENCE IF EXISTS "spdx"."annotations_annotation_id_seq"; -CREATE SEQUENCE "spdx"."annotations_annotation_id_seq" -INCREMENT 1 -MINVALUE 1 -MAXVALUE 2147483647 -START 1 -CACHE 1; -ALTER SEQUENCE "spdx"."annotations_annotation_id_seq" OWNER TO "augur"; - --- ---------------------------- --- Sequence structure for augur_repo_map_map_id_seq --- ---------------------------- -DROP SEQUENCE IF EXISTS "spdx"."augur_repo_map_map_id_seq"; -CREATE SEQUENCE "spdx"."augur_repo_map_map_id_seq" -INCREMENT 1 -MINVALUE 1 -MAXVALUE 2147483647 -START 1 -CACHE 1; -ALTER SEQUENCE "spdx"."augur_repo_map_map_id_seq" OWNER TO "augur"; - --- ---------------------------- --- Sequence structure for creator_types_creator_type_id_seq --- ---------------------------- -DROP SEQUENCE IF EXISTS "spdx"."creator_types_creator_type_id_seq"; -CREATE SEQUENCE "spdx"."creator_types_creator_type_id_seq" -INCREMENT 1 -MINVALUE 1 -MAXVALUE 2147483647 -START 1 -CACHE 1; -ALTER SEQUENCE "spdx"."creator_types_creator_type_id_seq" OWNER TO "augur"; - --- ---------------------------- --- Sequence structure for creators_creator_id_seq --- ---------------------------- -DROP SEQUENCE IF EXISTS "spdx"."creators_creator_id_seq"; -CREATE SEQUENCE "spdx"."creators_creator_id_seq" -INCREMENT 1 -MINVALUE 1 -MAXVALUE 2147483647 -START 1 -CACHE 1; -ALTER SEQUENCE "spdx"."creators_creator_id_seq" OWNER TO "augur"; - --- ---------------------------- --- Sequence structure for document_namespaces_document_namespace_id_seq --- ---------------------------- -DROP SEQUENCE IF EXISTS "spdx"."document_namespaces_document_namespace_id_seq"; -CREATE SEQUENCE "spdx"."document_namespaces_document_namespace_id_seq" -INCREMENT 1 -MINVALUE 1 -MAXVALUE 2147483647 -START 1 -CACHE 1; -ALTER SEQUENCE "spdx"."document_namespaces_document_namespace_id_seq" OWNER TO "augur"; - --- ---------------------------- --- Sequence structure for documents_creators_document_creator_id_seq --- ---------------------------- -DROP SEQUENCE IF EXISTS "spdx"."documents_creators_document_creator_id_seq"; -CREATE SEQUENCE "spdx"."documents_creators_document_creator_id_seq" -INCREMENT 1 -MINVALUE 1 -MAXVALUE 2147483647 -START 1 -CACHE 1; -ALTER SEQUENCE "spdx"."documents_creators_document_creator_id_seq" OWNER TO "augur"; - --- ---------------------------- --- Sequence structure for documents_document_id_seq --- ---------------------------- -DROP SEQUENCE IF EXISTS "spdx"."documents_document_id_seq"; -CREATE SEQUENCE "spdx"."documents_document_id_seq" -INCREMENT 1 -MINVALUE 1 -MAXVALUE 2147483647 -START 1 -CACHE 1; -ALTER SEQUENCE "spdx"."documents_document_id_seq" OWNER TO "augur"; - --- ---------------------------- --- Sequence structure for external_refs_external_ref_id_seq --- ---------------------------- -DROP SEQUENCE IF EXISTS "spdx"."external_refs_external_ref_id_seq"; -CREATE SEQUENCE "spdx"."external_refs_external_ref_id_seq" -INCREMENT 1 -MINVALUE 1 -MAXVALUE 2147483647 -START 1 -CACHE 1; -ALTER SEQUENCE "spdx"."external_refs_external_ref_id_seq" OWNER TO "augur"; - --- ---------------------------- --- Sequence structure for file_contributors_file_contributor_id_seq --- ---------------------------- -DROP SEQUENCE IF EXISTS "spdx"."file_contributors_file_contributor_id_seq"; -CREATE SEQUENCE "spdx"."file_contributors_file_contributor_id_seq" -INCREMENT 1 -MINVALUE 1 -MAXVALUE 2147483647 -START 1 -CACHE 1; -ALTER SEQUENCE "spdx"."file_contributors_file_contributor_id_seq" OWNER TO "augur"; - --- ---------------------------- --- Sequence structure for files_file_id_seq --- ---------------------------- -DROP SEQUENCE IF EXISTS "spdx"."files_file_id_seq"; -CREATE SEQUENCE "spdx"."files_file_id_seq" -INCREMENT 1 -MINVALUE 1 -MAXVALUE 2147483647 -START 1 -CACHE 1; -ALTER SEQUENCE "spdx"."files_file_id_seq" OWNER TO "augur"; - --- ---------------------------- --- Sequence structure for files_licenses_file_license_id_seq --- ---------------------------- -DROP SEQUENCE IF EXISTS "spdx"."files_licenses_file_license_id_seq"; -CREATE SEQUENCE "spdx"."files_licenses_file_license_id_seq" -INCREMENT 1 -MINVALUE 1 -MAXVALUE 2147483647 -START 1 -CACHE 1; -ALTER SEQUENCE "spdx"."files_licenses_file_license_id_seq" OWNER TO "augur"; - --- ---------------------------- --- Sequence structure for files_scans_file_scan_id_seq --- ---------------------------- -DROP SEQUENCE IF EXISTS "spdx"."files_scans_file_scan_id_seq"; -CREATE SEQUENCE "spdx"."files_scans_file_scan_id_seq" -INCREMENT 1 -MINVALUE 1 -MAXVALUE 2147483647 -START 1 -CACHE 1; -ALTER SEQUENCE "spdx"."files_scans_file_scan_id_seq" OWNER TO "augur"; - --- ---------------------------- --- Sequence structure for identifiers_identifier_id_seq --- ---------------------------- -DROP SEQUENCE IF EXISTS "spdx"."identifiers_identifier_id_seq"; -CREATE SEQUENCE "spdx"."identifiers_identifier_id_seq" -INCREMENT 1 -MINVALUE 1 -MAXVALUE 2147483647 -START 1 -CACHE 1; -ALTER SEQUENCE "spdx"."identifiers_identifier_id_seq" OWNER TO "augur"; - --- ---------------------------- --- Sequence structure for licenses_license_id_seq --- ---------------------------- -DROP SEQUENCE IF EXISTS "spdx"."licenses_license_id_seq"; -CREATE SEQUENCE "spdx"."licenses_license_id_seq" -INCREMENT 1 -MINVALUE 1 -MAXVALUE 2147483647 -START 1 -CACHE 1; -ALTER SEQUENCE "spdx"."licenses_license_id_seq" OWNER TO "augur"; - --- ---------------------------- --- Sequence structure for packages_files_package_file_id_seq --- ---------------------------- -DROP SEQUENCE IF EXISTS "spdx"."packages_files_package_file_id_seq"; -CREATE SEQUENCE "spdx"."packages_files_package_file_id_seq" -INCREMENT 1 -MINVALUE 1 -MAXVALUE 2147483647 -START 1 -CACHE 1; -ALTER SEQUENCE "spdx"."packages_files_package_file_id_seq" OWNER TO "augur"; - --- ---------------------------- --- Sequence structure for packages_package_id_seq --- ---------------------------- -DROP SEQUENCE IF EXISTS "spdx"."packages_package_id_seq"; -CREATE SEQUENCE "spdx"."packages_package_id_seq" -INCREMENT 1 -MINVALUE 1 -MAXVALUE 2147483647 -START 1 -CACHE 1; -ALTER SEQUENCE "spdx"."packages_package_id_seq" OWNER TO "augur"; - --- ---------------------------- --- Sequence structure for packages_scans_package_scan_id_seq --- ---------------------------- -DROP SEQUENCE IF EXISTS "spdx"."packages_scans_package_scan_id_seq"; -CREATE SEQUENCE "spdx"."packages_scans_package_scan_id_seq" -INCREMENT 1 -MINVALUE 1 -MAXVALUE 2147483647 -START 1 -CACHE 1; -ALTER SEQUENCE "spdx"."packages_scans_package_scan_id_seq" OWNER TO "augur"; - --- ---------------------------- --- Sequence structure for projects_package_id_seq --- ---------------------------- -DROP SEQUENCE IF EXISTS "spdx"."projects_package_id_seq"; -CREATE SEQUENCE "spdx"."projects_package_id_seq" -INCREMENT 1 -MINVALUE 1 -MAXVALUE 2147483647 -START 1 -CACHE 1; -ALTER SEQUENCE "spdx"."projects_package_id_seq" OWNER TO "augur"; - --- ---------------------------- --- Sequence structure for relationship_types_relationship_type_id_seq --- ---------------------------- -DROP SEQUENCE IF EXISTS "spdx"."relationship_types_relationship_type_id_seq"; -CREATE SEQUENCE "spdx"."relationship_types_relationship_type_id_seq" -INCREMENT 1 -MINVALUE 1 -MAXVALUE 2147483647 -START 1 -CACHE 1; -ALTER SEQUENCE "spdx"."relationship_types_relationship_type_id_seq" OWNER TO "augur"; - --- ---------------------------- --- Sequence structure for relationships_relationship_id_seq --- ---------------------------- -DROP SEQUENCE IF EXISTS "spdx"."relationships_relationship_id_seq"; -CREATE SEQUENCE "spdx"."relationships_relationship_id_seq" -INCREMENT 1 -MINVALUE 1 -MAXVALUE 2147483647 -START 1 -CACHE 1; -ALTER SEQUENCE "spdx"."relationships_relationship_id_seq" OWNER TO "augur"; - --- ---------------------------- --- Sequence structure for scanners_scanner_id_seq --- ---------------------------- -DROP SEQUENCE IF EXISTS "spdx"."scanners_scanner_id_seq"; -CREATE SEQUENCE "spdx"."scanners_scanner_id_seq" -INCREMENT 1 -MINVALUE 1 -MAXVALUE 2147483647 -START 1 -CACHE 1; -ALTER SEQUENCE "spdx"."scanners_scanner_id_seq" OWNER TO "augur"; - --- ---------------------------- --- Sequence structure for augur_settings_id_seq --- ---------------------------- -DROP SEQUENCE IF EXISTS "augur_operations"."augur_settings_id_seq"; -CREATE SEQUENCE "augur_operations"."augur_settings_id_seq" -INCREMENT 1 -MINVALUE 1 -MAXVALUE 9223372036854775807 -START 1 -CACHE 1; -ALTER SEQUENCE "augur_operations"."augur_settings_id_seq" OWNER TO "augur"; - --- ---------------------------- --- Sequence structure for gh_worker_history_history_id_seq --- ---------------------------- -DROP SEQUENCE IF EXISTS "augur_operations"."gh_worker_history_history_id_seq"; -CREATE SEQUENCE "augur_operations"."gh_worker_history_history_id_seq" -INCREMENT 1 -MINVALUE 1 -MAXVALUE 9223372036854775807 -START 1 -CACHE 1; -ALTER SEQUENCE "augur_operations"."gh_worker_history_history_id_seq" OWNER TO "augur"; - --- ---------------------------- --- Sequence structure for worker_oauth_oauth_id_seq --- ---------------------------- -DROP SEQUENCE IF EXISTS "augur_operations"."worker_oauth_oauth_id_seq"; -CREATE SEQUENCE "augur_operations"."worker_oauth_oauth_id_seq" -INCREMENT 1 -MINVALUE 1 -MAXVALUE 9223372036854775807 -START 1000 -CACHE 1; -ALTER SEQUENCE "augur_operations"."worker_oauth_oauth_id_seq" OWNER TO "augur"; - --- ---------------------------- - --- ---------------------------- --- Sequence structure for augur_data.repo_insights_ri_id_seq --- ---------------------------- -DROP SEQUENCE IF EXISTS "augur_data"."augur_data.repo_insights_ri_id_seq"; -CREATE SEQUENCE "augur_data"."augur_data.repo_insights_ri_id_seq" -INCREMENT 1 -MINVALUE 1 -MAXVALUE 9223372036854775807 -START 25430 -CACHE 1; -ALTER SEQUENCE "augur_data"."augur_data.repo_insights_ri_id_seq" OWNER TO "augur"; - --- ---------------------------- --- Sequence structure for chaoss_metric_status_cms_id_seq --- ---------------------------- -DROP SEQUENCE IF EXISTS "augur_data"."chaoss_metric_status_cms_id_seq"; -CREATE SEQUENCE "augur_data"."chaoss_metric_status_cms_id_seq" -INCREMENT 1 -MINVALUE 1 -MAXVALUE 9223372036854775807 -START 1 -CACHE 1; -ALTER SEQUENCE "augur_data"."chaoss_metric_status_cms_id_seq" OWNER TO "augur"; - --- ---------------------------- --- Sequence structure for commit_comment_ref_cmt_comment_id_seq --- ---------------------------- -DROP SEQUENCE IF EXISTS "augur_data"."commit_comment_ref_cmt_comment_id_seq"; -CREATE SEQUENCE "augur_data"."commit_comment_ref_cmt_comment_id_seq" -INCREMENT 1 -MINVALUE 1 -MAXVALUE 9223372036854775807 -START 25430 -CACHE 1; -ALTER SEQUENCE "augur_data"."commit_comment_ref_cmt_comment_id_seq" OWNER TO "augur"; - --- ---------------------------- --- Sequence structure for commit_parents_parent_id_seq --- ---------------------------- -DROP SEQUENCE IF EXISTS "augur_data"."commit_parents_parent_id_seq"; -CREATE SEQUENCE "augur_data"."commit_parents_parent_id_seq" -INCREMENT 1 -MINVALUE 1 -MAXVALUE 9223372036854775807 -START 25430 -CACHE 1; -ALTER SEQUENCE "augur_data"."commit_parents_parent_id_seq" OWNER TO "augur"; - --- ---------------------------- --- Sequence structure for commits_cmt_id_seq --- ---------------------------- -DROP SEQUENCE IF EXISTS "augur_data"."commits_cmt_id_seq"; -CREATE SEQUENCE "augur_data"."commits_cmt_id_seq" -INCREMENT 1 -MINVALUE 1 -MAXVALUE 9223372036854775807 -START 25430 -CACHE 1; -ALTER SEQUENCE "augur_data"."commits_cmt_id_seq" OWNER TO "augur"; - --- ---------------------------- --- Sequence structure for contributor_affiliations_ca_id_seq --- ---------------------------- -DROP SEQUENCE IF EXISTS "augur_data"."contributor_affiliations_ca_id_seq"; -CREATE SEQUENCE "augur_data"."contributor_affiliations_ca_id_seq" -INCREMENT 1 -MINVALUE 1 -MAXVALUE 9223372036854775807 -START 25430 -CACHE 1; -ALTER SEQUENCE "augur_data"."contributor_affiliations_ca_id_seq" OWNER TO "augur"; - --- ---------------------------- --- Sequence structure for contributors_aliases_cntrb_a_id_seq --- ---------------------------- -DROP SEQUENCE IF EXISTS "augur_data"."contributors_aliases_cntrb_a_id_seq"; -CREATE SEQUENCE "augur_data"."contributors_aliases_cntrb_a_id_seq" -INCREMENT 1 -MINVALUE 1 -MAXVALUE 9223372036854775807 -START 25430 -CACHE 1; -ALTER SEQUENCE "augur_data"."contributors_aliases_cntrb_a_id_seq" OWNER TO "augur"; - --- ---------------------------- --- Sequence structure for contributors_cntrb_id_seq --- ---------------------------- -DROP SEQUENCE IF EXISTS "augur_data"."contributors_cntrb_id_seq"; -CREATE SEQUENCE "augur_data"."contributors_cntrb_id_seq" -INCREMENT 1 -MINVALUE 1 -MAXVALUE 9223372036854775807 -START 25430 -CACHE 1; -ALTER SEQUENCE "augur_data"."contributors_cntrb_id_seq" OWNER TO "augur"; - --- ---------------------------- --- Sequence structure for contributors_history_cntrb_history_id_seq --- ---------------------------- -DROP SEQUENCE IF EXISTS "augur_data"."contributors_history_cntrb_history_id_seq"; -CREATE SEQUENCE "augur_data"."contributors_history_cntrb_history_id_seq" -INCREMENT 1 -MINVALUE 1 -MAXVALUE 9223372036854775807 -START 25430 -CACHE 1; -ALTER SEQUENCE "augur_data"."contributors_history_cntrb_history_id_seq" OWNER TO "augur"; - --- ---------------------------- --- Sequence structure for discourse_insights_msg_discourse_id_seq --- ---------------------------- -DROP SEQUENCE IF EXISTS "augur_data"."discourse_insights_msg_discourse_id_seq"; -CREATE SEQUENCE "augur_data"."discourse_insights_msg_discourse_id_seq" -INCREMENT 1 -MINVALUE 1 -MAXVALUE 9223372036854775807 -START 1 -CACHE 1; -ALTER SEQUENCE "augur_data"."discourse_insights_msg_discourse_id_seq" OWNER TO "augur"; - --- ---------------------------- --- Sequence structure for issue_assignees_issue_assignee_id_seq --- ---------------------------- -DROP SEQUENCE IF EXISTS "augur_data"."issue_assignees_issue_assignee_id_seq"; -CREATE SEQUENCE "augur_data"."issue_assignees_issue_assignee_id_seq" -INCREMENT 1 -MINVALUE 1 -MAXVALUE 9223372036854775807 -START 1 -CACHE 1; -ALTER SEQUENCE "augur_data"."issue_assignees_issue_assignee_id_seq" OWNER TO "augur"; - --- ---------------------------- --- Sequence structure for issue_events_event_id_seq --- ---------------------------- -DROP SEQUENCE IF EXISTS "augur_data"."issue_events_event_id_seq"; -CREATE SEQUENCE "augur_data"."issue_events_event_id_seq" -INCREMENT 1 -MINVALUE 1 -MAXVALUE 9223372036854775807 -START 25430 -CACHE 1; -ALTER SEQUENCE "augur_data"."issue_events_event_id_seq" OWNER TO "augur"; - --- ---------------------------- --- Sequence structure for issue_labels_issue_label_id_seq --- ---------------------------- -DROP SEQUENCE IF EXISTS "augur_data"."issue_labels_issue_label_id_seq"; -CREATE SEQUENCE "augur_data"."issue_labels_issue_label_id_seq" -INCREMENT 1 -MINVALUE 1 -MAXVALUE 9223372036854775807 -START 25430 -CACHE 1; -ALTER SEQUENCE "augur_data"."issue_labels_issue_label_id_seq" OWNER TO "augur"; - --- ---------------------------- --- Sequence structure for issue_message_ref_issue_msg_ref_id_seq --- ---------------------------- -DROP SEQUENCE IF EXISTS "augur_data"."issue_message_ref_issue_msg_ref_id_seq"; -CREATE SEQUENCE "augur_data"."issue_message_ref_issue_msg_ref_id_seq" -INCREMENT 1 -MINVALUE 1 -MAXVALUE 9223372036854775807 -START 25430 -CACHE 1; -ALTER SEQUENCE "augur_data"."issue_message_ref_issue_msg_ref_id_seq" OWNER TO "augur"; - --- ---------------------------- --- Sequence structure for issue_seq --- ---------------------------- -DROP SEQUENCE IF EXISTS "augur_data"."issue_seq"; -CREATE SEQUENCE "augur_data"."issue_seq" -INCREMENT 1 -MINVALUE 1 -MAXVALUE 9223372036854775807 -START 31000 -CACHE 1; -ALTER SEQUENCE "augur_data"."issue_seq" OWNER TO "augur"; - --- ---------------------------- --- Sequence structure for libraries_library_id_seq --- ---------------------------- -DROP SEQUENCE IF EXISTS "augur_data"."libraries_library_id_seq"; -CREATE SEQUENCE "augur_data"."libraries_library_id_seq" -INCREMENT 1 -MINVALUE 1 -MAXVALUE 9223372036854775807 -START 25430 -CACHE 1; -ALTER SEQUENCE "augur_data"."libraries_library_id_seq" OWNER TO "augur"; - --- ---------------------------- --- Sequence structure for library_dependencies_lib_dependency_id_seq --- ---------------------------- -DROP SEQUENCE IF EXISTS "augur_data"."library_dependencies_lib_dependency_id_seq"; -CREATE SEQUENCE "augur_data"."library_dependencies_lib_dependency_id_seq" -INCREMENT 1 -MINVALUE 1 -MAXVALUE 9223372036854775807 -START 25430 -CACHE 1; -ALTER SEQUENCE "augur_data"."library_dependencies_lib_dependency_id_seq" OWNER TO "augur"; - --- ---------------------------- --- Sequence structure for library_version_library_version_id_seq --- ---------------------------- -DROP SEQUENCE IF EXISTS "augur_data"."library_version_library_version_id_seq"; -CREATE SEQUENCE "augur_data"."library_version_library_version_id_seq" -INCREMENT 1 -MINVALUE 1 -MAXVALUE 9223372036854775807 -START 25430 -CACHE 1; -ALTER SEQUENCE "augur_data"."library_version_library_version_id_seq" OWNER TO "augur"; - --- ---------------------------- --- Sequence structure for lstm_anomaly_models_model_id_seq --- ---------------------------- -DROP SEQUENCE IF EXISTS "augur_data"."lstm_anomaly_models_model_id_seq"; -CREATE SEQUENCE "augur_data"."lstm_anomaly_models_model_id_seq" -INCREMENT 1 -MINVALUE 1 -MAXVALUE 9223372036854775807 -START 1 -CACHE 1; -ALTER SEQUENCE "augur_data"."lstm_anomaly_models_model_id_seq" OWNER TO "augur"; - --- ---------------------------- --- Sequence structure for lstm_anomaly_results_result_id_seq --- ---------------------------- -DROP SEQUENCE IF EXISTS "augur_data"."lstm_anomaly_results_result_id_seq"; -CREATE SEQUENCE "augur_data"."lstm_anomaly_results_result_id_seq" -INCREMENT 1 -MINVALUE 1 -MAXVALUE 9223372036854775807 -START 1 -CACHE 1; -ALTER SEQUENCE "augur_data"."lstm_anomaly_results_result_id_seq" OWNER TO "augur"; - --- ---------------------------- --- Sequence structure for message_analysis_msg_analysis_id_seq --- ---------------------------- -DROP SEQUENCE IF EXISTS "augur_data"."message_analysis_msg_analysis_id_seq"; -CREATE SEQUENCE "augur_data"."message_analysis_msg_analysis_id_seq" -INCREMENT 1 -MINVALUE 1 -MAXVALUE 9223372036854775807 -START 1 -CACHE 1; -ALTER SEQUENCE "augur_data"."message_analysis_msg_analysis_id_seq" OWNER TO "augur"; - --- ---------------------------- --- Sequence structure for message_analysis_summary_msg_summary_id_seq --- ---------------------------- -DROP SEQUENCE IF EXISTS "augur_data"."message_analysis_summary_msg_summary_id_seq"; -CREATE SEQUENCE "augur_data"."message_analysis_summary_msg_summary_id_seq" -INCREMENT 1 -MINVALUE 1 -MAXVALUE 9223372036854775807 -START 1 -CACHE 1; -ALTER SEQUENCE "augur_data"."message_analysis_summary_msg_summary_id_seq" OWNER TO "augur"; - --- ---------------------------- --- Sequence structure for message_msg_id_seq --- ---------------------------- -DROP SEQUENCE IF EXISTS "augur_data"."message_msg_id_seq"; -CREATE SEQUENCE "augur_data"."message_msg_id_seq" -INCREMENT 1 -MINVALUE 1 -MAXVALUE 9223372036854775807 -START 25430 -CACHE 1; -ALTER SEQUENCE "augur_data"."message_msg_id_seq" OWNER TO "augur"; - --- ---------------------------- --- Sequence structure for message_sentiment_msg_analysis_id_seq --- ---------------------------- -DROP SEQUENCE IF EXISTS "augur_data"."message_sentiment_msg_analysis_id_seq"; -CREATE SEQUENCE "augur_data"."message_sentiment_msg_analysis_id_seq" -INCREMENT 1 -MINVALUE 1 -MAXVALUE 9223372036854775807 -START 1 -CACHE 1; -ALTER SEQUENCE "augur_data"."message_sentiment_msg_analysis_id_seq" OWNER TO "augur"; - --- ---------------------------- --- Sequence structure for message_sentiment_summary_msg_summary_id_seq --- ---------------------------- -DROP SEQUENCE IF EXISTS "augur_data"."message_sentiment_summary_msg_summary_id_seq"; -CREATE SEQUENCE "augur_data"."message_sentiment_summary_msg_summary_id_seq" -INCREMENT 1 -MINVALUE 1 -MAXVALUE 9223372036854775807 -START 1 -CACHE 1; -ALTER SEQUENCE "augur_data"."message_sentiment_summary_msg_summary_id_seq" OWNER TO "augur"; - --- ---------------------------- --- Sequence structure for platform_pltfrm_id_seq --- ---------------------------- -DROP SEQUENCE IF EXISTS "augur_data"."platform_pltfrm_id_seq"; -CREATE SEQUENCE "augur_data"."platform_pltfrm_id_seq" -INCREMENT 1 -MINVALUE 1 -MAXVALUE 9223372036854775807 -START 25430 -CACHE 1; -ALTER SEQUENCE "augur_data"."platform_pltfrm_id_seq" OWNER TO "augur"; - --- ---------------------------- --- Sequence structure for pull_request_assignees_pr_assignee_map_id_seq --- ---------------------------- -DROP SEQUENCE IF EXISTS "augur_data"."pull_request_assignees_pr_assignee_map_id_seq"; -CREATE SEQUENCE "augur_data"."pull_request_assignees_pr_assignee_map_id_seq" -INCREMENT 1 -MINVALUE 1 -MAXVALUE 9223372036854775807 -START 25430 -CACHE 1; -ALTER SEQUENCE "augur_data"."pull_request_assignees_pr_assignee_map_id_seq" OWNER TO "augur"; - --- ---------------------------- --- Sequence structure for pull_request_commits_pr_cmt_id_seq --- ---------------------------- -DROP SEQUENCE IF EXISTS "augur_data"."pull_request_commits_pr_cmt_id_seq"; -CREATE SEQUENCE "augur_data"."pull_request_commits_pr_cmt_id_seq" -INCREMENT 1 -MINVALUE 1 -MAXVALUE 9223372036854775807 -START 1 -CACHE 1; -ALTER SEQUENCE "augur_data"."pull_request_commits_pr_cmt_id_seq" OWNER TO "augur"; - --- ---------------------------- --- Sequence structure for pull_request_events_pr_event_id_seq --- ---------------------------- -DROP SEQUENCE IF EXISTS "augur_data"."pull_request_events_pr_event_id_seq"; -CREATE SEQUENCE "augur_data"."pull_request_events_pr_event_id_seq" -INCREMENT 1 -MINVALUE 1 -MAXVALUE 9223372036854775807 -START 25430 -CACHE 1; -ALTER SEQUENCE "augur_data"."pull_request_events_pr_event_id_seq" OWNER TO "augur"; - --- ---------------------------- --- Sequence structure for pull_request_files_pr_file_id_seq --- ---------------------------- -DROP SEQUENCE IF EXISTS "augur_data"."pull_request_files_pr_file_id_seq"; -CREATE SEQUENCE "augur_data"."pull_request_files_pr_file_id_seq" -INCREMENT 1 -MINVALUE 1 -MAXVALUE 9223372036854775807 -START 25150 -CACHE 1; -ALTER SEQUENCE "augur_data"."pull_request_files_pr_file_id_seq" OWNER TO "augur"; - --- ---------------------------- --- Sequence structure for pull_request_labels_pr_label_id_seq --- ---------------------------- -DROP SEQUENCE IF EXISTS "augur_data"."pull_request_labels_pr_label_id_seq"; -CREATE SEQUENCE "augur_data"."pull_request_labels_pr_label_id_seq" -INCREMENT 1 -MINVALUE 1 -MAXVALUE 9223372036854775807 -START 25430 -CACHE 1; -ALTER SEQUENCE "augur_data"."pull_request_labels_pr_label_id_seq" OWNER TO "augur"; - --- ---------------------------- --- Sequence structure for pull_request_message_ref_pr_msg_ref_id_seq --- ---------------------------- -DROP SEQUENCE IF EXISTS "augur_data"."pull_request_message_ref_pr_msg_ref_id_seq"; -CREATE SEQUENCE "augur_data"."pull_request_message_ref_pr_msg_ref_id_seq" -INCREMENT 1 -MINVALUE 1 -MAXVALUE 9223372036854775807 -START 25430 -CACHE 1; -ALTER SEQUENCE "augur_data"."pull_request_message_ref_pr_msg_ref_id_seq" OWNER TO "augur"; - --- ---------------------------- --- Sequence structure for pull_request_meta_pr_repo_meta_id_seq --- ---------------------------- -DROP SEQUENCE IF EXISTS "augur_data"."pull_request_meta_pr_repo_meta_id_seq"; -CREATE SEQUENCE "augur_data"."pull_request_meta_pr_repo_meta_id_seq" -INCREMENT 1 -MINVALUE 1 -MAXVALUE 9223372036854775807 -START 25430 -CACHE 1; -ALTER SEQUENCE "augur_data"."pull_request_meta_pr_repo_meta_id_seq" OWNER TO "augur"; - --- ---------------------------- --- Sequence structure for pull_request_repo_pr_repo_id_seq --- ---------------------------- -DROP SEQUENCE IF EXISTS "augur_data"."pull_request_repo_pr_repo_id_seq"; -CREATE SEQUENCE "augur_data"."pull_request_repo_pr_repo_id_seq" -INCREMENT 1 -MINVALUE 1 -MAXVALUE 9223372036854775807 -START 25430 -CACHE 1; -ALTER SEQUENCE "augur_data"."pull_request_repo_pr_repo_id_seq" OWNER TO "augur"; - --- ---------------------------- --- Sequence structure for pull_request_reviewers_pr_reviewer_map_id_seq --- ---------------------------- -DROP SEQUENCE IF EXISTS "augur_data"."pull_request_reviewers_pr_reviewer_map_id_seq"; -CREATE SEQUENCE "augur_data"."pull_request_reviewers_pr_reviewer_map_id_seq" -INCREMENT 1 -MINVALUE 1 -MAXVALUE 9223372036854775807 -START 25430 -CACHE 1; -ALTER SEQUENCE "augur_data"."pull_request_reviewers_pr_reviewer_map_id_seq" OWNER TO "augur"; - --- ---------------------------- --- Sequence structure for pull_request_teams_pr_team_id_seq --- ---------------------------- -DROP SEQUENCE IF EXISTS "augur_data"."pull_request_teams_pr_team_id_seq"; -CREATE SEQUENCE "augur_data"."pull_request_teams_pr_team_id_seq" -INCREMENT 1 -MINVALUE 1 -MAXVALUE 9223372036854775807 -START 25430 -CACHE 1; -ALTER SEQUENCE "augur_data"."pull_request_teams_pr_team_id_seq" OWNER TO "augur"; - --- ---------------------------- --- Sequence structure for pull_requests_pull_request_id_seq --- ---------------------------- -DROP SEQUENCE IF EXISTS "augur_data"."pull_requests_pull_request_id_seq"; -CREATE SEQUENCE "augur_data"."pull_requests_pull_request_id_seq" -INCREMENT 1 -MINVALUE 1 -MAXVALUE 9223372036854775807 -START 25430 -CACHE 1; -ALTER SEQUENCE "augur_data"."pull_requests_pull_request_id_seq" OWNER TO "augur"; - --- ---------------------------- --- Sequence structure for releases_release_id_seq --- ---------------------------- -DROP SEQUENCE IF EXISTS "augur_data"."releases_release_id_seq"; -CREATE SEQUENCE "augur_data"."releases_release_id_seq" -INCREMENT 1 -MINVALUE 1 -MAXVALUE 9223372036854775807 -START 1 -CACHE 1; -ALTER SEQUENCE "augur_data"."releases_release_id_seq" OWNER TO "augur"; - --- ---------------------------- --- Sequence structure for repo_badging_badge_collection_id_seq --- ---------------------------- -DROP SEQUENCE IF EXISTS "augur_data"."repo_badging_badge_collection_id_seq"; -CREATE SEQUENCE "augur_data"."repo_badging_badge_collection_id_seq" -INCREMENT 1 -MINVALUE 1 -MAXVALUE 9223372036854775807 -START 25012 -CACHE 1; -ALTER SEQUENCE "augur_data"."repo_badging_badge_collection_id_seq" OWNER TO "augur"; - --- ---------------------------- --- Sequence structure for repo_cluster_messages_msg_cluster_id_seq --- ---------------------------- -DROP SEQUENCE IF EXISTS "augur_data"."repo_cluster_messages_msg_cluster_id_seq"; -CREATE SEQUENCE "augur_data"."repo_cluster_messages_msg_cluster_id_seq" -INCREMENT 1 -MINVALUE 1 -MAXVALUE 9223372036854775807 -START 1 -CACHE 1; -ALTER SEQUENCE "augur_data"."repo_cluster_messages_msg_cluster_id_seq" OWNER TO "augur"; - --- ---------------------------- --- Sequence structure for repo_group_insights_rgi_id_seq --- ---------------------------- -DROP SEQUENCE IF EXISTS "augur_data"."repo_group_insights_rgi_id_seq"; -CREATE SEQUENCE "augur_data"."repo_group_insights_rgi_id_seq" -INCREMENT 1 -MINVALUE 1 -MAXVALUE 9223372036854775807 -START 25430 -CACHE 1; -ALTER SEQUENCE "augur_data"."repo_group_insights_rgi_id_seq" OWNER TO "augur"; - --- ---------------------------- --- Sequence structure for repo_groups_list_serve_rgls_id_seq --- ---------------------------- -DROP SEQUENCE IF EXISTS "augur_data"."repo_groups_list_serve_rgls_id_seq"; -CREATE SEQUENCE "augur_data"."repo_groups_list_serve_rgls_id_seq" -INCREMENT 1 -MINVALUE 1 -MAXVALUE 9223372036854775807 -START 25430 -CACHE 1; -ALTER SEQUENCE "augur_data"."repo_groups_list_serve_rgls_id_seq" OWNER TO "augur"; - --- ---------------------------- --- Sequence structure for repo_groups_repo_group_id_seq --- ---------------------------- -DROP SEQUENCE IF EXISTS "augur_data"."repo_groups_repo_group_id_seq"; -CREATE SEQUENCE "augur_data"."repo_groups_repo_group_id_seq" -INCREMENT 1 -MINVALUE 1 -MAXVALUE 9223372036854775807 -START 25430 -CACHE 1; -ALTER SEQUENCE "augur_data"."repo_groups_repo_group_id_seq" OWNER TO "augur"; - --- ---------------------------- --- Sequence structure for repo_info_repo_info_id_seq --- ---------------------------- -DROP SEQUENCE IF EXISTS "augur_data"."repo_info_repo_info_id_seq"; -CREATE SEQUENCE "augur_data"."repo_info_repo_info_id_seq" -INCREMENT 1 -MINVALUE 1 -MAXVALUE 9223372036854775807 -START 25430 -CACHE 1; -ALTER SEQUENCE "augur_data"."repo_info_repo_info_id_seq" OWNER TO "augur"; - --- ---------------------------- --- Sequence structure for repo_insights_records_ri_id_seq --- ---------------------------- -DROP SEQUENCE IF EXISTS "augur_data"."repo_insights_records_ri_id_seq"; -CREATE SEQUENCE "augur_data"."repo_insights_records_ri_id_seq" -INCREMENT 1 -MINVALUE 1 -MAXVALUE 9223372036854775807 -START 1 -CACHE 1; -ALTER SEQUENCE "augur_data"."repo_insights_records_ri_id_seq" OWNER TO "augur"; - --- ---------------------------- --- Sequence structure for repo_insights_ri_id_seq --- ---------------------------- -DROP SEQUENCE IF EXISTS "augur_data"."repo_insights_ri_id_seq"; -CREATE SEQUENCE "augur_data"."repo_insights_ri_id_seq" -INCREMENT 1 -MINVALUE 1 -MAXVALUE 9223372036854775807 -START 1 -CACHE 1; -ALTER SEQUENCE "augur_data"."repo_insights_ri_id_seq" OWNER TO "augur"; - --- ---------------------------- --- Sequence structure for repo_labor_repo_labor_id_seq --- ---------------------------- -DROP SEQUENCE IF EXISTS "augur_data"."repo_labor_repo_labor_id_seq"; -CREATE SEQUENCE "augur_data"."repo_labor_repo_labor_id_seq" -INCREMENT 1 -MINVALUE 1 -MAXVALUE 9223372036854775807 -START 25430 -CACHE 1; -ALTER SEQUENCE "augur_data"."repo_labor_repo_labor_id_seq" OWNER TO "augur"; - --- ---------------------------- --- Sequence structure for repo_meta_rmeta_id_seq --- ---------------------------- -DROP SEQUENCE IF EXISTS "augur_data"."repo_meta_rmeta_id_seq"; -CREATE SEQUENCE "augur_data"."repo_meta_rmeta_id_seq" -INCREMENT 1 -MINVALUE 1 -MAXVALUE 9223372036854775807 -START 25430 -CACHE 1; -ALTER SEQUENCE "augur_data"."repo_meta_rmeta_id_seq" OWNER TO "augur"; - --- ---------------------------- --- Sequence structure for repo_repo_id_seq --- ---------------------------- -DROP SEQUENCE IF EXISTS "augur_data"."repo_repo_id_seq"; -CREATE SEQUENCE "augur_data"."repo_repo_id_seq" -INCREMENT 1 -MINVALUE 1 -MAXVALUE 9223372036854775807 -START 25430 -CACHE 1; -ALTER SEQUENCE "augur_data"."repo_repo_id_seq" OWNER TO "augur"; - --- ---------------------------- --- Sequence structure for repo_sbom_scans_rsb_id_seq --- ---------------------------- -DROP SEQUENCE IF EXISTS "augur_data"."repo_sbom_scans_rsb_id_seq"; -CREATE SEQUENCE "augur_data"."repo_sbom_scans_rsb_id_seq" -INCREMENT 1 -MINVALUE 1 -MAXVALUE 9223372036854775807 -START 25430 -CACHE 1; -ALTER SEQUENCE "augur_data"."repo_sbom_scans_rsb_id_seq" OWNER TO "augur"; - --- ---------------------------- --- Sequence structure for repo_stats_rstat_id_seq --- ---------------------------- -DROP SEQUENCE IF EXISTS "augur_data"."repo_stats_rstat_id_seq"; -CREATE SEQUENCE "augur_data"."repo_stats_rstat_id_seq" -INCREMENT 1 -MINVALUE 1 -MAXVALUE 9223372036854775807 -START 25430 -CACHE 1; -ALTER SEQUENCE "augur_data"."repo_stats_rstat_id_seq" OWNER TO "augur"; - --- ---------------------------- --- Sequence structure for repo_test_coverage_repo_id_seq --- ---------------------------- -DROP SEQUENCE IF EXISTS "augur_data"."repo_test_coverage_repo_id_seq"; -CREATE SEQUENCE "augur_data"."repo_test_coverage_repo_id_seq" -INCREMENT 1 -MINVALUE 1 -MAXVALUE 9223372036854775807 -START 1 -CACHE 1; -ALTER SEQUENCE "augur_data"."repo_test_coverage_repo_id_seq" OWNER TO "augur"; - --- ---------------------------- --- Sequence structure for repo_topic_repo_topic_id_seq --- ---------------------------- -DROP SEQUENCE IF EXISTS "augur_data"."repo_topic_repo_topic_id_seq"; -CREATE SEQUENCE "augur_data"."repo_topic_repo_topic_id_seq" -INCREMENT 1 -MINVALUE 1 -MAXVALUE 9223372036854775807 -START 1 -CACHE 1; -ALTER SEQUENCE "augur_data"."repo_topic_repo_topic_id_seq" OWNER TO "augur"; - --- ---------------------------- --- Sequence structure for topic_words_topic_words_id_seq --- ---------------------------- -DROP SEQUENCE IF EXISTS "augur_data"."topic_words_topic_words_id_seq"; -CREATE SEQUENCE "augur_data"."topic_words_topic_words_id_seq" -INCREMENT 1 -MINVALUE 1 -MAXVALUE 9223372036854775807 -START 1 -CACHE 1; -ALTER SEQUENCE "augur_data"."topic_words_topic_words_id_seq" OWNER TO "augur"; - --- ---------------------------- --- Sequence structure for utility_log_id_seq --- ---------------------------- -DROP SEQUENCE IF EXISTS "augur_data"."utility_log_id_seq"; -CREATE SEQUENCE "augur_data"."utility_log_id_seq" -INCREMENT 1 -MINVALUE 1 -MAXVALUE 9223372036854775807 -START 1 -CACHE 1; -ALTER SEQUENCE "augur_data"."utility_log_id_seq" OWNER TO "augur"; - --- ---------------------------- --- Sequence structure for utility_log_id_seq1 --- ---------------------------- -DROP SEQUENCE IF EXISTS "augur_data"."utility_log_id_seq1"; -CREATE SEQUENCE "augur_data"."utility_log_id_seq1" -INCREMENT 1 -MINVALUE 1 -MAXVALUE 9223372036854775807 -START 1 -CACHE 1; -ALTER SEQUENCE "augur_data"."utility_log_id_seq1" OWNER TO "augur"; - --- ---------------------------- - -ALTER TABLE IF EXISTS "augur_data"."commit_comment_ref" DROP CONSTRAINT "fk_commit_comment_ref_commits_1" CASCADE; -ALTER TABLE IF EXISTS "augur_data"."commit_comment_ref" DROP CONSTRAINT "fk_commit_comment_ref_message_1" CASCADE; -ALTER TABLE IF EXISTS "augur_data"."commit_parents" DROP CONSTRAINT "fk_commit_parents_commits_1" CASCADE; -ALTER TABLE IF EXISTS "augur_data"."commit_parents" DROP CONSTRAINT "fk_commit_parents_commits_2" CASCADE; -ALTER TABLE IF EXISTS "augur_data"."commits" DROP CONSTRAINT "fk_commits_contributors_1" CASCADE; -ALTER TABLE IF EXISTS "augur_data"."commits" DROP CONSTRAINT "fk_commits_contributors_2" CASCADE; -ALTER TABLE IF EXISTS "augur_data"."commits" DROP CONSTRAINT "fk_commits_repo_1" CASCADE; -ALTER TABLE IF EXISTS "augur_data"."contributors_aliases" DROP CONSTRAINT "fk_contributors_aliases_contributors_1" CASCADE; -ALTER TABLE IF EXISTS "augur_data"."contributors_history" DROP CONSTRAINT "fk_contributors_history_contributors_1" CASCADE; -ALTER TABLE IF EXISTS "augur_data"."discourse_insights" DROP CONSTRAINT "fk_discourse_insights_message_1" CASCADE; -ALTER TABLE IF EXISTS "augur_data"."issue_assignees" DROP CONSTRAINT "fk_issue_assignees_contributors_1" CASCADE; -ALTER TABLE IF EXISTS "augur_data"."issue_assignees" DROP CONSTRAINT "fk_issue_assignees_issues_1" CASCADE; -ALTER TABLE IF EXISTS "augur_data"."issue_events" DROP CONSTRAINT "fk_issue_events_contributors_1" CASCADE; -ALTER TABLE IF EXISTS "augur_data"."issue_events" DROP CONSTRAINT "fk_issue_events_issues_1" CASCADE; -ALTER TABLE IF EXISTS "augur_data"."issue_labels" DROP CONSTRAINT "fk_issue_labels_issues_1" CASCADE; -ALTER TABLE IF EXISTS "augur_data"."issue_message_ref" DROP CONSTRAINT "fk_issue_message_ref_issues_1" CASCADE; -ALTER TABLE IF EXISTS "augur_data"."issue_message_ref" DROP CONSTRAINT "fk_issue_message_ref_message_1" CASCADE; -ALTER TABLE IF EXISTS "augur_data"."issues" DROP CONSTRAINT "fk_issues_contributors_1" CASCADE; -ALTER TABLE IF EXISTS "augur_data"."issues" DROP CONSTRAINT "fk_issues_contributors_2" CASCADE; -ALTER TABLE IF EXISTS "augur_data"."issues" DROP CONSTRAINT "fk_issues_repo" CASCADE; -ALTER TABLE IF EXISTS "augur_data"."libraries" DROP CONSTRAINT "fk_libraries_repo_1" CASCADE; -ALTER TABLE IF EXISTS "augur_data"."library_dependencies" DROP CONSTRAINT "fk_library_dependencies_libraries_1" CASCADE; -ALTER TABLE IF EXISTS "augur_data"."library_version" DROP CONSTRAINT "fk_library_version_libraries_1" CASCADE; -ALTER TABLE IF EXISTS "augur_data"."lstm_anomaly_results" DROP CONSTRAINT "fk_lstm_anomaly_results_lstm_anomaly_models_1" CASCADE; -ALTER TABLE IF EXISTS "augur_data"."lstm_anomaly_results" DROP CONSTRAINT "fk_lstm_anomaly_results_repo_1" CASCADE; -ALTER TABLE IF EXISTS "augur_data"."message" DROP CONSTRAINT "fk_message_contributors_1" CASCADE; -ALTER TABLE IF EXISTS "augur_data"."message" DROP CONSTRAINT "fk_message_platform_1" CASCADE; -ALTER TABLE IF EXISTS "augur_data"."message" DROP CONSTRAINT "fk_message_repo_groups_list_serve_1" CASCADE; -ALTER TABLE IF EXISTS "augur_data"."message_analysis" DROP CONSTRAINT "fk_message_analysis_message_1" CASCADE; -ALTER TABLE IF EXISTS "augur_data"."message_analysis_summary" DROP CONSTRAINT "fk_message_analysis_summary_repo_1" CASCADE; -ALTER TABLE IF EXISTS "augur_data"."message_sentiment" DROP CONSTRAINT "fk_message_sentiment_message_1" CASCADE; -ALTER TABLE IF EXISTS "augur_data"."message_sentiment_summary" DROP CONSTRAINT "fk_message_sentiment_summary_repo_1" CASCADE; -ALTER TABLE IF EXISTS "augur_data"."pull_request_assignees" DROP CONSTRAINT "fk_pull_request_assignees_contributors_1" CASCADE; -ALTER TABLE IF EXISTS "augur_data"."pull_request_assignees" DROP CONSTRAINT "fk_pull_request_assignees_pull_requests_1" CASCADE; -ALTER TABLE IF EXISTS "augur_data"."pull_request_commits" DROP CONSTRAINT "fk_pull_request_commits_pull_requests_1" CASCADE; -ALTER TABLE IF EXISTS "augur_data"."pull_request_events" DROP CONSTRAINT "fk_pull_request_events_contributors_1" CASCADE; -ALTER TABLE IF EXISTS "augur_data"."pull_request_events" DROP CONSTRAINT "fk_pull_request_events_pull_requests_1" CASCADE; -ALTER TABLE IF EXISTS "augur_data"."pull_request_files" DROP CONSTRAINT "fk_pull_request_commits_pull_requests_1" CASCADE; -ALTER TABLE IF EXISTS "augur_data"."pull_request_labels" DROP CONSTRAINT "fk_pull_request_labels_pull_requests_1" CASCADE; -ALTER TABLE IF EXISTS "augur_data"."pull_request_message_ref" DROP CONSTRAINT "fk_pull_request_message_ref_message_1" CASCADE; -ALTER TABLE IF EXISTS "augur_data"."pull_request_message_ref" DROP CONSTRAINT "fk_pull_request_message_ref_pull_requests_1" CASCADE; -ALTER TABLE IF EXISTS "augur_data"."pull_request_meta" DROP CONSTRAINT "fk_pull_request_meta_contributors_2" CASCADE; -ALTER TABLE IF EXISTS "augur_data"."pull_request_meta" DROP CONSTRAINT "fk_pull_request_meta_pull_requests_1" CASCADE; -ALTER TABLE IF EXISTS "augur_data"."pull_request_repo" DROP CONSTRAINT "fk_pull_request_repo_contributors_1" CASCADE; -ALTER TABLE IF EXISTS "augur_data"."pull_request_repo" DROP CONSTRAINT "fk_pull_request_repo_pull_request_meta_1" CASCADE; -ALTER TABLE IF EXISTS "augur_data"."pull_request_reviewers" DROP CONSTRAINT "fk_pull_request_reviewers_contributors_1" CASCADE; -ALTER TABLE IF EXISTS "augur_data"."pull_request_reviewers" DROP CONSTRAINT "fk_pull_request_reviewers_pull_requests_1" CASCADE; -ALTER TABLE IF EXISTS "augur_data"."pull_request_teams" DROP CONSTRAINT "fk_pull_request_teams_pull_requests_1" CASCADE; -ALTER TABLE IF EXISTS "augur_data"."pull_requests" DROP CONSTRAINT "fk_pull_requests_pull_request_meta_1" CASCADE; -ALTER TABLE IF EXISTS "augur_data"."pull_requests" DROP CONSTRAINT "fk_pull_requests_pull_request_meta_2" CASCADE; -ALTER TABLE IF EXISTS "augur_data"."pull_requests" DROP CONSTRAINT "fk_pull_requests_repo_1" CASCADE; -ALTER TABLE IF EXISTS "augur_data"."releases" DROP CONSTRAINT "fk_releases_repo_1" CASCADE; -ALTER TABLE IF EXISTS "augur_data"."repo" DROP CONSTRAINT "fk_repo_repo_groups_1" CASCADE; -ALTER TABLE IF EXISTS "augur_data"."repo_badging" DROP CONSTRAINT "fk_repo_badging_repo_1" CASCADE; -ALTER TABLE IF EXISTS "augur_data"."repo_cluster_messages" DROP CONSTRAINT "fk_repo_cluster_messages_repo_1" CASCADE; -ALTER TABLE IF EXISTS "augur_data"."repo_group_insights" DROP CONSTRAINT "fk_repo_group_insights_repo_groups_1" CASCADE; -ALTER TABLE IF EXISTS "augur_data"."repo_groups_list_serve" DROP CONSTRAINT "fk_repo_groups_list_serve_repo_groups_1" CASCADE; -ALTER TABLE IF EXISTS "augur_data"."repo_info" DROP CONSTRAINT "fk_repo_info_repo_1" CASCADE; -ALTER TABLE IF EXISTS "augur_data"."repo_insights" DROP CONSTRAINT "fk_repo_insights_repo_1" CASCADE; -ALTER TABLE IF EXISTS "augur_data"."repo_insights_records" DROP CONSTRAINT "repo_id_ref" CASCADE; -ALTER TABLE IF EXISTS "augur_data"."repo_labor" DROP CONSTRAINT "fk_repo_labor_repo_1" CASCADE; -ALTER TABLE IF EXISTS "augur_data"."repo_meta" DROP CONSTRAINT "fk_repo_meta_repo_1" CASCADE; -ALTER TABLE IF EXISTS "augur_data"."repo_sbom_scans" DROP CONSTRAINT "repo_linker_sbom" CASCADE; -ALTER TABLE IF EXISTS "augur_data"."repo_stats" DROP CONSTRAINT "fk_repo_stats_repo_1" CASCADE; -ALTER TABLE IF EXISTS "augur_data"."repo_test_coverage" DROP CONSTRAINT "fk_repo_test_coverage_repo_1" CASCADE; -ALTER TABLE IF EXISTS "augur_data"."repo_topic" DROP CONSTRAINT "fk_repo_topic_repo_1" CASCADE; -ALTER TABLE IF EXISTS "augur_data"."topic_words" DROP CONSTRAINT "fk_topic_words_repo_topic_1" CASCADE; -ALTER TABLE IF EXISTS "spdx"."annotations" DROP CONSTRAINT "annotations_annotation_type_id_fkey" CASCADE; -ALTER TABLE IF EXISTS "spdx"."annotations" DROP CONSTRAINT "annotations_creator_id_fkey" CASCADE; -ALTER TABLE IF EXISTS "spdx"."annotations" DROP CONSTRAINT "annotations_document_id_fkey" CASCADE; -ALTER TABLE IF EXISTS "spdx"."annotations" DROP CONSTRAINT "annotations_identifier_id_fkey" CASCADE; -ALTER TABLE IF EXISTS "spdx"."creators" DROP CONSTRAINT "creators_creator_type_id_fkey" CASCADE; -ALTER TABLE IF EXISTS "spdx"."documents" DROP CONSTRAINT "documents_data_license_id_fkey" CASCADE; -ALTER TABLE IF EXISTS "spdx"."documents" DROP CONSTRAINT "documents_document_namespace_id_fkey" CASCADE; -ALTER TABLE IF EXISTS "spdx"."documents" DROP CONSTRAINT "documents_package_id_fkey" CASCADE; -ALTER TABLE IF EXISTS "spdx"."documents_creators" DROP CONSTRAINT "documents_creators_creator_id_fkey" CASCADE; -ALTER TABLE IF EXISTS "spdx"."documents_creators" DROP CONSTRAINT "documents_creators_document_id_fkey" CASCADE; -ALTER TABLE IF EXISTS "spdx"."external_refs" DROP CONSTRAINT "external_refs_document_id_fkey" CASCADE; -ALTER TABLE IF EXISTS "spdx"."external_refs" DROP CONSTRAINT "external_refs_document_namespace_id_fkey" CASCADE; -ALTER TABLE IF EXISTS "spdx"."file_contributors" DROP CONSTRAINT "file_contributors_file_id_fkey" CASCADE; -ALTER TABLE IF EXISTS "spdx"."files_licenses" DROP CONSTRAINT "files_licenses_file_id_fkey" CASCADE; -ALTER TABLE IF EXISTS "spdx"."files_licenses" DROP CONSTRAINT "files_licenses_license_id_fkey" CASCADE; -ALTER TABLE IF EXISTS "spdx"."files_scans" DROP CONSTRAINT "files_scans_file_id_fkey" CASCADE; -ALTER TABLE IF EXISTS "spdx"."files_scans" DROP CONSTRAINT "files_scans_scanner_id_fkey" CASCADE; -ALTER TABLE IF EXISTS "spdx"."identifiers" DROP CONSTRAINT "identifiers_document_id_fkey" CASCADE; -ALTER TABLE IF EXISTS "spdx"."identifiers" DROP CONSTRAINT "identifiers_document_namespace_id_fkey" CASCADE; -ALTER TABLE IF EXISTS "spdx"."identifiers" DROP CONSTRAINT "identifiers_package_file_id_fkey" CASCADE; -ALTER TABLE IF EXISTS "spdx"."identifiers" DROP CONSTRAINT "identifiers_package_id_fkey" CASCADE; -ALTER TABLE IF EXISTS "spdx"."packages" DROP CONSTRAINT "fk_package_packages_files" CASCADE; -ALTER TABLE IF EXISTS "spdx"."packages" DROP CONSTRAINT "packages_concluded_license_id_fkey" CASCADE; -ALTER TABLE IF EXISTS "spdx"."packages" DROP CONSTRAINT "packages_declared_license_id_fkey" CASCADE; -ALTER TABLE IF EXISTS "spdx"."packages" DROP CONSTRAINT "packages_originator_id_fkey" CASCADE; -ALTER TABLE IF EXISTS "spdx"."packages" DROP CONSTRAINT "packages_supplier_id_fkey" CASCADE; -ALTER TABLE IF EXISTS "spdx"."packages_files" DROP CONSTRAINT "fk_package_files_packages" CASCADE; -ALTER TABLE IF EXISTS "spdx"."packages_files" DROP CONSTRAINT "packages_files_concluded_license_id_fkey" CASCADE; -ALTER TABLE IF EXISTS "spdx"."packages_files" DROP CONSTRAINT "packages_files_file_id_fkey" CASCADE; -ALTER TABLE IF EXISTS "spdx"."packages_scans" DROP CONSTRAINT "packages_scans_package_id_fkey" CASCADE; -ALTER TABLE IF EXISTS "spdx"."packages_scans" DROP CONSTRAINT "packages_scans_scanner_id_fkey" CASCADE; -ALTER TABLE IF EXISTS "spdx"."relationships" DROP CONSTRAINT "relationships_left_identifier_id_fkey" CASCADE; -ALTER TABLE IF EXISTS "spdx"."relationships" DROP CONSTRAINT "relationships_relationship_type_id_fkey" CASCADE; -ALTER TABLE IF EXISTS "spdx"."relationships" DROP CONSTRAINT "relationships_right_identifier_id_fkey" CASCADE; - -DROP INDEX IF EXISTS "augur_data"."repos_id" CASCADE; -DROP INDEX IF EXISTS "augur_data"."comment_id" CASCADE; -DROP INDEX IF EXISTS "augur_data"."commit_parents_ibfk_1" CASCADE; -DROP INDEX IF EXISTS "augur_data"."commit_parents_ibfk_2" CASCADE; -DROP INDEX IF EXISTS "augur_data"."author_affiliation" CASCADE; -DROP INDEX IF EXISTS "augur_data"."author_cntrb_id" CASCADE; -DROP INDEX IF EXISTS "augur_data"."author_email,author_affiliation,author_date" CASCADE; -DROP INDEX IF EXISTS "augur_data"."author_raw_email" CASCADE; -DROP INDEX IF EXISTS "augur_data"."cmt-author-date-idx2" CASCADE; -DROP INDEX IF EXISTS "augur_data"."cmt-committer-date-idx3" CASCADE; -DROP INDEX IF EXISTS "augur_data"."cmt_author-name-idx5" CASCADE; -DROP INDEX IF EXISTS "augur_data"."cmt_author_contrib_worker" CASCADE; -DROP INDEX IF EXISTS "augur_data"."cmt_cmmter-name-idx4" CASCADE; -DROP INDEX IF EXISTS "augur_data"."cmt_commiter_contrib_worker" CASCADE; -DROP INDEX IF EXISTS "augur_data"."commited" CASCADE; -DROP INDEX IF EXISTS "augur_data"."commits_idx_cmt_email_cmt_date_cmt_name" CASCADE; -DROP INDEX IF EXISTS "augur_data"."commits_idx_cmt_email_cmt_date_cmt_name2" CASCADE; -DROP INDEX IF EXISTS "augur_data"."commits_idx_cmt_name_cmt_date2" CASCADE; -DROP INDEX IF EXISTS "augur_data"."commits_idx_cmt_name_cmt_date_cmt_date3" CASCADE; -DROP INDEX IF EXISTS "augur_data"."commits_idx_repo_id_cmt_ema_cmt_dat_cmt_nam" CASCADE; -DROP INDEX IF EXISTS "augur_data"."commits_idx_repo_id_cmt_ema_cmt_dat_cmt_nam2" CASCADE; -DROP INDEX IF EXISTS "augur_data"."commits_idx_repo_id_cmt_ema_cmt_nam_cmt_dat2" CASCADE; -DROP INDEX IF EXISTS "augur_data"."commits_idx_repo_id_cmt_ema_cmt_nam_cmt_dat3" CASCADE; -DROP INDEX IF EXISTS "augur_data"."committer_affiliation" CASCADE; -DROP INDEX IF EXISTS "augur_data"."committer_cntrb_id" CASCADE; -DROP INDEX IF EXISTS "augur_data"."committer_email,committer_affiliation,committer_date" CASCADE; -DROP INDEX IF EXISTS "augur_data"."committer_raw_email" CASCADE; -DROP INDEX IF EXISTS "augur_data"."repo_id,commit" CASCADE; -DROP INDEX IF EXISTS "augur_data"."cnt-fullname" CASCADE; -DROP INDEX IF EXISTS "augur_data"."cntrb-theemail" CASCADE; -DROP INDEX IF EXISTS "augur_data"."cntrb_login_platform_index" CASCADE; -DROP INDEX IF EXISTS "augur_data"."contributor_delete_finder" CASCADE; -DROP INDEX IF EXISTS "augur_data"."contributor_worker_email_finder" CASCADE; -DROP INDEX IF EXISTS "augur_data"."contributor_worker_finder" CASCADE; -DROP INDEX IF EXISTS "augur_data"."contributor_worker_fullname_finder" CASCADE; -DROP INDEX IF EXISTS "augur_data"."contributors_idx_cntrb_email3" CASCADE; -DROP INDEX IF EXISTS "augur_data"."login" CASCADE; -DROP INDEX IF EXISTS "augur_data"."login-contributor-idx" CASCADE; -DROP INDEX IF EXISTS "augur_data"."alias,active" CASCADE; -DROP INDEX IF EXISTS "augur_data"."canonical,alias" CASCADE; -DROP INDEX IF EXISTS "augur_data"."issue-alias-cntrb-idx1" CASCADE; -DROP INDEX IF EXISTS "augur_data"."issue-alias-cntrb-idx2" CASCADE; -DROP INDEX IF EXISTS "augur_data"."contrb-history-dix1" CASCADE; -DROP INDEX IF EXISTS "augur_data"."login_index_2" CASCADE; -DROP INDEX IF EXISTS "augur_data"."repo_id,affiliation_copy_1" CASCADE; -DROP INDEX IF EXISTS "augur_data"."repo_id,email_copy_1" CASCADE; -DROP INDEX IF EXISTS "augur_data"."projects_id,affiliation_copy_1" CASCADE; -DROP INDEX IF EXISTS "augur_data"."projects_id,email_copy_1" CASCADE; -DROP INDEX IF EXISTS "augur_data"."projects_id,affiliation_copy_2" CASCADE; -DROP INDEX IF EXISTS "augur_data"."projects_id,email_copy_2" CASCADE; -DROP INDEX IF EXISTS "augur_data"."projects_id,year,affiliation_copy_1" CASCADE; -DROP INDEX IF EXISTS "augur_data"."projects_id,year,email_copy_1" CASCADE; -DROP INDEX IF EXISTS "augur_data"."projects_id,affiliation" CASCADE; -DROP INDEX IF EXISTS "augur_data"."projects_id,email" CASCADE; -DROP INDEX IF EXISTS "augur_data"."projects_id,year,affiliation" CASCADE; -DROP INDEX IF EXISTS "augur_data"."projects_id,year,email" CASCADE; -DROP INDEX IF EXISTS "augur_data"."repo_id,affiliation_copy_2" CASCADE; -DROP INDEX IF EXISTS "augur_data"."repo_id,email_copy_2" CASCADE; -DROP INDEX IF EXISTS "augur_data"."repo_id,year,affiliation_copy_1" CASCADE; -DROP INDEX IF EXISTS "augur_data"."repo_id,year,email_copy_1" CASCADE; -DROP INDEX IF EXISTS "augur_data"."repo_id,affiliation" CASCADE; -DROP INDEX IF EXISTS "augur_data"."repo_id,email" CASCADE; -DROP INDEX IF EXISTS "augur_data"."repo_id,year,affiliation" CASCADE; -DROP INDEX IF EXISTS "augur_data"."repo_id,year,email" CASCADE; -DROP INDEX IF EXISTS "augur_data"."issue-cntrb-assign-idx-1" CASCADE; -DROP INDEX IF EXISTS "augur_data"."issue-cntrb-idx2" CASCADE; -DROP INDEX IF EXISTS "augur_data"."issue_events_ibfk_1" CASCADE; -DROP INDEX IF EXISTS "augur_data"."issue_events_ibfk_2" CASCADE; -DROP INDEX IF EXISTS "augur_data"."issue-cntrb-dix2" CASCADE; -DROP INDEX IF EXISTS "augur_data"."issues_ibfk_1" CASCADE; -DROP INDEX IF EXISTS "augur_data"."issues_ibfk_2" CASCADE; -DROP INDEX IF EXISTS "augur_data"."issues_ibfk_4" CASCADE; -DROP INDEX IF EXISTS "augur_data"."REPO_DEP" CASCADE; -DROP INDEX IF EXISTS "augur_data"."messagegrouper" CASCADE; -DROP INDEX IF EXISTS "augur_data"."msg-cntrb-id-idx" CASCADE; -DROP INDEX IF EXISTS "augur_data"."platformgrouper" CASCADE; -DROP INDEX IF EXISTS "augur_data"."plat" CASCADE; -DROP INDEX IF EXISTS "augur_data"."pr_meta_cntrb-idx" CASCADE; -DROP INDEX IF EXISTS "augur_data"."pr_events_ibfk_1" CASCADE; -DROP INDEX IF EXISTS "augur_data"."pr_events_ibfk_2" CASCADE; -DROP INDEX IF EXISTS "augur_data"."pr_meta-cntrbid-idx" CASCADE; -DROP INDEX IF EXISTS "augur_data"."pr-cntrb-idx-repo" CASCADE; -DROP INDEX IF EXISTS "augur_data"."pr-reviewers-cntrb-idx1" CASCADE; -DROP INDEX IF EXISTS "augur_data"."id_node" CASCADE; -DROP INDEX IF EXISTS "augur_data"."forked" CASCADE; -DROP INDEX IF EXISTS "augur_data"."repogitindexrep" CASCADE; -DROP INDEX IF EXISTS "augur_data"."reponameindex" CASCADE; -DROP INDEX IF EXISTS "augur_data"."reponameindexbtree" CASCADE; -DROP INDEX IF EXISTS "augur_data"."rggrouponrepoindex" CASCADE; -DROP INDEX IF EXISTS "augur_data"."therepo" CASCADE; -DROP INDEX IF EXISTS "augur_data"."rgidm" CASCADE; -DROP INDEX IF EXISTS "augur_data"."rgnameindex" CASCADE; -DROP INDEX IF EXISTS "augur_data"."lister" CASCADE; -DROP INDEX IF EXISTS "augur_data"."dater" CASCADE; -DROP INDEX IF EXISTS "augur_data"."repos_id,status" CASCADE; -DROP INDEX IF EXISTS "augur_data"."repos_id,statusops" CASCADE; -DROP INDEX IF EXISTS "augur_data"."type,projects_id" CASCADE; -DROP INDEX IF EXISTS "augur_operations"."repos_id,statusops" CASCADE; - -ALTER TABLE IF EXISTS "augur_data"."commit_comment_ref" DROP CONSTRAINT "commitcomment" CASCADE; -ALTER TABLE IF EXISTS "augur_data"."contributor_affiliations" DROP CONSTRAINT "unique_domain" CASCADE; -ALTER TABLE IF EXISTS "augur_data"."message" DROP CONSTRAINT "REPOGROUPLISTER" CASCADE; -ALTER TABLE IF EXISTS "augur_data"."message" DROP CONSTRAINT "platformer" CASCADE; -ALTER TABLE IF EXISTS "augur_data"."repo_groups_list_serve" DROP CONSTRAINT "rglistserve" CASCADE; -ALTER TABLE IF EXISTS "spdx"."annotation_types" DROP CONSTRAINT "uc_annotation_type_name" CASCADE; -ALTER TABLE IF EXISTS "spdx"."document_namespaces" DROP CONSTRAINT "uc_document_namespace_uri" CASCADE; -ALTER TABLE IF EXISTS "spdx"."documents" DROP CONSTRAINT "uc_document_document_namespace_id" CASCADE; -ALTER TABLE IF EXISTS "spdx"."external_refs" DROP CONSTRAINT "uc_external_ref_document_id_string" CASCADE; -ALTER TABLE IF EXISTS "spdx"."files" DROP CONSTRAINT "uc_file_sha256" CASCADE; -ALTER TABLE IF EXISTS "spdx"."files_licenses" DROP CONSTRAINT "uc_file_license" CASCADE; -ALTER TABLE IF EXISTS "spdx"."files_scans" DROP CONSTRAINT "uc_file_scanner_id" CASCADE; -ALTER TABLE IF EXISTS "spdx"."identifiers" DROP CONSTRAINT "uc_identifier_document_namespace_id" CASCADE; -ALTER TABLE IF EXISTS "spdx"."identifiers" DROP CONSTRAINT "uc_identifier_namespace_document_id" CASCADE; -ALTER TABLE IF EXISTS "spdx"."identifiers" DROP CONSTRAINT "uc_identifier_namespace_package_id" CASCADE; -ALTER TABLE IF EXISTS "spdx"."identifiers" DROP CONSTRAINT "uc_identifier_namespace_package_file_id" CASCADE; -ALTER TABLE IF EXISTS "spdx"."licenses" DROP CONSTRAINT "uc_license_short_name" CASCADE; -ALTER TABLE IF EXISTS "spdx"."packages" DROP CONSTRAINT "uc_package_sha256" CASCADE; -ALTER TABLE IF EXISTS "spdx"."packages" DROP CONSTRAINT "uc_dir_code_ver_code" CASCADE; -ALTER TABLE IF EXISTS "spdx"."packages_files" DROP CONSTRAINT "uc_package_id_file_name" CASCADE; -ALTER TABLE IF EXISTS "spdx"."packages_scans" DROP CONSTRAINT "uc_package_scanner_id" CASCADE; -ALTER TABLE IF EXISTS "spdx"."relationship_types" DROP CONSTRAINT "uc_relationship_type_name" CASCADE; -ALTER TABLE IF EXISTS "spdx"."relationships" DROP CONSTRAINT "uc_left_right_relationship_type" CASCADE; -ALTER TABLE IF EXISTS "spdx"."scanners" DROP CONSTRAINT "uc_scanner_name" CASCADE; - -ALTER TABLE IF EXISTS "spdx"."identifiers" DROP CONSTRAINT "ck_identifier_exactly_one" CASCADE; -ALTER TABLE IF EXISTS "spdx"."packages" DROP CONSTRAINT "uc_sha256_ds2_dir_code_exactly_one" CASCADE; - -ALTER TABLE IF EXISTS "augur_data"."chaoss_metric_status" DROP CONSTRAINT "chaoss_metric_status_pkey" CASCADE; -ALTER TABLE IF EXISTS "augur_data"."commit_comment_ref" DROP CONSTRAINT "commit_comment_ref_pkey" CASCADE; -ALTER TABLE IF EXISTS "augur_data"."commit_parents" DROP CONSTRAINT "commit_parents_pkey" CASCADE; -ALTER TABLE IF EXISTS "augur_data"."commits" DROP CONSTRAINT "commits_pkey" CASCADE; -ALTER TABLE IF EXISTS "augur_data"."contributor_affiliations" DROP CONSTRAINT "contributor_affiliations_pkey" CASCADE; -ALTER TABLE IF EXISTS "augur_data"."contributors" DROP CONSTRAINT "contributors_pkey" CASCADE; -ALTER TABLE IF EXISTS "augur_data"."contributors_aliases" DROP CONSTRAINT "contributors_aliases_pkey" CASCADE; -ALTER TABLE IF EXISTS "augur_data"."contributors_history" DROP CONSTRAINT "contributors_history_pkey" CASCADE; -ALTER TABLE IF EXISTS "augur_data"."exclude" DROP CONSTRAINT "exclude_pkey" CASCADE; -ALTER TABLE IF EXISTS "augur_data"."issue_assignees" DROP CONSTRAINT "issue_assignees_pkey" CASCADE; -ALTER TABLE IF EXISTS "augur_data"."issue_events" DROP CONSTRAINT "issue_events_pkey" CASCADE; -ALTER TABLE IF EXISTS "augur_data"."issue_labels" DROP CONSTRAINT "issue_labels_pkey" CASCADE; -ALTER TABLE IF EXISTS "augur_data"."issue_message_ref" DROP CONSTRAINT "issue_message_ref_pkey" CASCADE; -ALTER TABLE IF EXISTS "augur_data"."issues" DROP CONSTRAINT "issues_pkey" CASCADE; -ALTER TABLE IF EXISTS "augur_data"."libraries" DROP CONSTRAINT "libraries_pkey" CASCADE; -ALTER TABLE IF EXISTS "augur_data"."library_dependencies" DROP CONSTRAINT "library_dependencies_pkey" CASCADE; -ALTER TABLE IF EXISTS "augur_data"."library_version" DROP CONSTRAINT "library_version_pkey" CASCADE; -ALTER TABLE IF EXISTS "augur_data"."lstm_anomaly_models" DROP CONSTRAINT "lstm_anomaly_models_pkey" CASCADE; -ALTER TABLE IF EXISTS "augur_data"."lstm_anomaly_results" DROP CONSTRAINT "lstm_anomaly_results_pkey" CASCADE; -ALTER TABLE IF EXISTS "augur_data"."message" DROP CONSTRAINT "message_pkey" CASCADE; -ALTER TABLE IF EXISTS "augur_data"."message_analysis" DROP CONSTRAINT "message_analysis_pkey" CASCADE; -ALTER TABLE IF EXISTS "augur_data"."message_analysis_summary" DROP CONSTRAINT "message_analysis_summary_pkey" CASCADE; -ALTER TABLE IF EXISTS "augur_data"."message_sentiment" DROP CONSTRAINT "message_sentiment_pkey" CASCADE; -ALTER TABLE IF EXISTS "augur_data"."message_sentiment_summary" DROP CONSTRAINT "message_sentiment_summary_pkey" CASCADE; -ALTER TABLE IF EXISTS "augur_data"."platform" DROP CONSTRAINT "theplat" CASCADE; -ALTER TABLE IF EXISTS "augur_data"."pull_request_assignees" DROP CONSTRAINT "pull_request_assignees_pkey" CASCADE; -ALTER TABLE IF EXISTS "augur_data"."pull_request_commits" DROP CONSTRAINT "pull_request_commits_pkey" CASCADE; -ALTER TABLE IF EXISTS "augur_data"."pull_request_events" DROP CONSTRAINT "pr_events_pkey" CASCADE; -ALTER TABLE IF EXISTS "augur_data"."pull_request_files" DROP CONSTRAINT "pull_request_files_pkey" CASCADE; -ALTER TABLE IF EXISTS "augur_data"."pull_request_labels" DROP CONSTRAINT "pull_request_labels_pkey" CASCADE; -ALTER TABLE IF EXISTS "augur_data"."pull_request_message_ref" DROP CONSTRAINT "pull_request_message_ref_pkey" CASCADE; -ALTER TABLE IF EXISTS "augur_data"."pull_request_meta" DROP CONSTRAINT "pull_request_meta_pkey" CASCADE; -ALTER TABLE IF EXISTS "augur_data"."pull_request_repo" DROP CONSTRAINT "pull_request_repo_pkey" CASCADE; -ALTER TABLE IF EXISTS "augur_data"."pull_request_reviewers" DROP CONSTRAINT "pull_request_reviewers_pkey" CASCADE; -ALTER TABLE IF EXISTS "augur_data"."pull_request_teams" DROP CONSTRAINT "pull_request_teams_pkey" CASCADE; -ALTER TABLE IF EXISTS "augur_data"."pull_requests" DROP CONSTRAINT "pull_requests_pkey" CASCADE; -ALTER TABLE IF EXISTS "augur_data"."releases" DROP CONSTRAINT "releases_pkey" CASCADE; -ALTER TABLE IF EXISTS "augur_data"."repo" DROP CONSTRAINT "repounique" CASCADE; -ALTER TABLE IF EXISTS "augur_data"."repo_badging" DROP CONSTRAINT "repo_badging_pkey" CASCADE; -ALTER TABLE IF EXISTS "augur_data"."repo_cluster_messages" DROP CONSTRAINT "repo_cluster_messages_pkey" CASCADE; -ALTER TABLE IF EXISTS "augur_data"."repo_group_insights" DROP CONSTRAINT "repo_group_insights_pkey" CASCADE; -ALTER TABLE IF EXISTS "augur_data"."repo_groups" DROP CONSTRAINT "rgid" CASCADE; -ALTER TABLE IF EXISTS "augur_data"."repo_groups_list_serve" DROP CONSTRAINT "repo_groups_list_serve_pkey" CASCADE; -ALTER TABLE IF EXISTS "augur_data"."repo_info" DROP CONSTRAINT "repo_info_pkey" CASCADE; -ALTER TABLE IF EXISTS "augur_data"."repo_insights" DROP CONSTRAINT "repo_insights_pkey" CASCADE; -ALTER TABLE IF EXISTS "augur_data"."repo_insights_records" DROP CONSTRAINT "repo_insights_records_pkey" CASCADE; -ALTER TABLE IF EXISTS "augur_data"."repo_labor" DROP CONSTRAINT "repo_labor_pkey" CASCADE; -ALTER TABLE IF EXISTS "augur_data"."repo_meta" DROP CONSTRAINT "repo_meta_pkey" CASCADE; -ALTER TABLE IF EXISTS "augur_data"."repo_sbom_scans" DROP CONSTRAINT "repo_sbom_scans_pkey" CASCADE; -ALTER TABLE IF EXISTS "augur_data"."repo_stats" DROP CONSTRAINT "repo_stats_pkey" CASCADE; -ALTER TABLE IF EXISTS "augur_data"."repo_test_coverage" DROP CONSTRAINT "repo_test_coverage_pkey" CASCADE; -ALTER TABLE IF EXISTS "augur_data"."repo_topic" DROP CONSTRAINT "repo_topic_pkey" CASCADE; -ALTER TABLE IF EXISTS "augur_data"."settings" DROP CONSTRAINT "settings_pkey" CASCADE; -ALTER TABLE IF EXISTS "augur_data"."topic_words" DROP CONSTRAINT "topic_words_pkey" CASCADE; -ALTER TABLE IF EXISTS "augur_data"."utility_log" DROP CONSTRAINT "utility_log_pkey" CASCADE; -ALTER TABLE IF EXISTS "augur_operations"."augur_settings" DROP CONSTRAINT "augur_settings_pkey" CASCADE; -ALTER TABLE IF EXISTS "augur_operations"."worker_history" DROP CONSTRAINT "history_pkey" CASCADE; -ALTER TABLE IF EXISTS "augur_operations"."worker_job" DROP CONSTRAINT "job_pkey" CASCADE; -ALTER TABLE IF EXISTS "augur_operations"."worker_oauth" DROP CONSTRAINT "worker_oauth_pkey" CASCADE; -ALTER TABLE IF EXISTS "augur_operations"."worker_settings_facade" DROP CONSTRAINT "settings_pkey" CASCADE; -ALTER TABLE IF EXISTS "spdx"."annotation_types" DROP CONSTRAINT "annotation_types_pkey" CASCADE; -ALTER TABLE IF EXISTS "spdx"."annotations" DROP CONSTRAINT "annotations_pkey" CASCADE; -ALTER TABLE IF EXISTS "spdx"."augur_repo_map" DROP CONSTRAINT "augur_repo_map_pkey" CASCADE; -ALTER TABLE IF EXISTS "spdx"."creator_types" DROP CONSTRAINT "creator_types_pkey" CASCADE; -ALTER TABLE IF EXISTS "spdx"."creators" DROP CONSTRAINT "creators_pkey" CASCADE; -ALTER TABLE IF EXISTS "spdx"."document_namespaces" DROP CONSTRAINT "document_namespaces_pkey" CASCADE; -ALTER TABLE IF EXISTS "spdx"."documents" DROP CONSTRAINT "documents_pkey" CASCADE; -ALTER TABLE IF EXISTS "spdx"."documents_creators" DROP CONSTRAINT "documents_creators_pkey" CASCADE; -ALTER TABLE IF EXISTS "spdx"."external_refs" DROP CONSTRAINT "external_refs_pkey" CASCADE; -ALTER TABLE IF EXISTS "spdx"."file_contributors" DROP CONSTRAINT "file_contributors_pkey" CASCADE; -ALTER TABLE IF EXISTS "spdx"."file_types" DROP CONSTRAINT "uc_file_type_name" CASCADE; -ALTER TABLE IF EXISTS "spdx"."files" DROP CONSTRAINT "files_pkey" CASCADE; -ALTER TABLE IF EXISTS "spdx"."files_licenses" DROP CONSTRAINT "files_licenses_pkey" CASCADE; -ALTER TABLE IF EXISTS "spdx"."files_scans" DROP CONSTRAINT "files_scans_pkey" CASCADE; -ALTER TABLE IF EXISTS "spdx"."identifiers" DROP CONSTRAINT "identifiers_pkey" CASCADE; -ALTER TABLE IF EXISTS "spdx"."licenses" DROP CONSTRAINT "licenses_pkey" CASCADE; -ALTER TABLE IF EXISTS "spdx"."packages" DROP CONSTRAINT "packages_pkey" CASCADE; -ALTER TABLE IF EXISTS "spdx"."packages_files" DROP CONSTRAINT "packages_files_pkey" CASCADE; -ALTER TABLE IF EXISTS "spdx"."packages_scans" DROP CONSTRAINT "packages_scans_pkey" CASCADE; -ALTER TABLE IF EXISTS "spdx"."projects" DROP CONSTRAINT "projects_pkey" CASCADE; -ALTER TABLE IF EXISTS "spdx"."relationship_types" DROP CONSTRAINT "relationship_types_pkey" CASCADE; -ALTER TABLE IF EXISTS "spdx"."relationships" DROP CONSTRAINT "relationships_pkey" CASCADE; -ALTER TABLE IF EXISTS "spdx"."scanners" DROP CONSTRAINT "scanners_pkey" CASCADE; - -DROP TABLE IF EXISTS "augur_data"."analysis_log" CASCADE; -DROP TABLE IF EXISTS "augur_data"."chaoss_metric_status" CASCADE; -DROP TABLE IF EXISTS "augur_data"."commit_comment_ref" CASCADE; -DROP TABLE IF EXISTS "augur_data"."commit_parents" CASCADE; -DROP TABLE IF EXISTS "augur_data"."commits" CASCADE; -DROP TABLE IF EXISTS "augur_data"."contributor_affiliations" CASCADE; -DROP TABLE IF EXISTS "augur_data"."contributors" CASCADE; -DROP TABLE IF EXISTS "augur_data"."contributors_aliases" CASCADE; -DROP TABLE IF EXISTS "augur_data"."contributors_history" CASCADE; -DROP TABLE IF EXISTS "augur_data"."discourse_insights" CASCADE; -DROP TABLE IF EXISTS "augur_data"."dm_repo_annual" CASCADE; -DROP TABLE IF EXISTS "augur_data"."dm_repo_group_annual" CASCADE; -DROP TABLE IF EXISTS "augur_data"."dm_repo_group_monthly" CASCADE; -DROP TABLE IF EXISTS "augur_data"."dm_repo_group_weekly" CASCADE; -DROP TABLE IF EXISTS "augur_data"."dm_repo_monthly" CASCADE; -DROP TABLE IF EXISTS "augur_data"."dm_repo_weekly" CASCADE; -DROP TABLE IF EXISTS "augur_data"."exclude" CASCADE; -DROP TABLE IF EXISTS "augur_data"."issue_assignees" CASCADE; -DROP TABLE IF EXISTS "augur_data"."issue_events" CASCADE; -DROP TABLE IF EXISTS "augur_data"."issue_labels" CASCADE; -DROP TABLE IF EXISTS "augur_data"."issue_message_ref" CASCADE; -DROP TABLE IF EXISTS "augur_data"."issues" CASCADE; -DROP TABLE IF EXISTS "augur_data"."libraries" CASCADE; -DROP TABLE IF EXISTS "augur_data"."library_dependencies" CASCADE; -DROP TABLE IF EXISTS "augur_data"."library_version" CASCADE; -DROP TABLE IF EXISTS "augur_data"."lstm_anomaly_models" CASCADE; -DROP TABLE IF EXISTS "augur_data"."lstm_anomaly_results" CASCADE; -DROP TABLE IF EXISTS "augur_data"."message" CASCADE; -DROP TABLE IF EXISTS "augur_data"."message_analysis" CASCADE; -DROP TABLE IF EXISTS "augur_data"."message_analysis_summary" CASCADE; -DROP TABLE IF EXISTS "augur_data"."message_sentiment" CASCADE; -DROP TABLE IF EXISTS "augur_data"."message_sentiment_summary" CASCADE; -DROP TABLE IF EXISTS "augur_data"."platform" CASCADE; -DROP TABLE IF EXISTS "augur_data"."pull_request_assignees" CASCADE; -DROP TABLE IF EXISTS "augur_data"."pull_request_commits" CASCADE; -DROP TABLE IF EXISTS "augur_data"."pull_request_events" CASCADE; -DROP TABLE IF EXISTS "augur_data"."pull_request_files" CASCADE; -DROP TABLE IF EXISTS "augur_data"."pull_request_labels" CASCADE; -DROP TABLE IF EXISTS "augur_data"."pull_request_message_ref" CASCADE; -DROP TABLE IF EXISTS "augur_data"."pull_request_meta" CASCADE; -DROP TABLE IF EXISTS "augur_data"."pull_request_repo" CASCADE; -DROP TABLE IF EXISTS "augur_data"."pull_request_reviewers" CASCADE; -DROP TABLE IF EXISTS "augur_data"."pull_request_teams" CASCADE; -DROP TABLE IF EXISTS "augur_data"."pull_requests" CASCADE; -DROP TABLE IF EXISTS "augur_data"."releases" CASCADE; -DROP TABLE IF EXISTS "augur_data"."repo" CASCADE; -DROP TABLE IF EXISTS "augur_data"."repo_badging" CASCADE; -DROP TABLE IF EXISTS "augur_data"."repo_cluster_messages" CASCADE; -DROP TABLE IF EXISTS "augur_data"."repo_group_insights" CASCADE; -DROP TABLE IF EXISTS "augur_data"."repo_groups" CASCADE; -DROP TABLE IF EXISTS "augur_data"."repo_groups_list_serve" CASCADE; -DROP TABLE IF EXISTS "augur_data"."repo_info" CASCADE; -DROP TABLE IF EXISTS "augur_data"."repo_insights" CASCADE; -DROP TABLE IF EXISTS "augur_data"."repo_insights_records" CASCADE; -DROP TABLE IF EXISTS "augur_data"."repo_labor" CASCADE; -DROP TABLE IF EXISTS "augur_data"."repo_meta" CASCADE; -DROP TABLE IF EXISTS "augur_data"."repo_sbom_scans" CASCADE; -DROP TABLE IF EXISTS "augur_data"."repo_stats" CASCADE; -DROP TABLE IF EXISTS "augur_data"."repo_test_coverage" CASCADE; -DROP TABLE IF EXISTS "augur_data"."repo_topic" CASCADE; -DROP TABLE IF EXISTS "augur_data"."repos_fetch_log" CASCADE; -DROP TABLE IF EXISTS "augur_data"."settings" CASCADE; -DROP TABLE IF EXISTS "augur_data"."topic_words" CASCADE; -DROP TABLE IF EXISTS "augur_data"."unknown_cache" CASCADE; -DROP TABLE IF EXISTS "augur_data"."utility_log" CASCADE; -DROP TABLE IF EXISTS "augur_data"."working_commits" CASCADE; -DROP TABLE IF EXISTS "augur_operations"."all" CASCADE; -DROP TABLE IF EXISTS "augur_operations"."augur_settings" CASCADE; -DROP TABLE IF EXISTS "augur_operations"."repos_fetch_log" CASCADE; -DROP TABLE IF EXISTS "augur_operations"."worker_history" CASCADE; -DROP TABLE IF EXISTS "augur_operations"."worker_job" CASCADE; -DROP TABLE IF EXISTS "augur_operations"."worker_oauth" CASCADE; -DROP TABLE IF EXISTS "augur_operations"."worker_settings_facade" CASCADE; -DROP TABLE IF EXISTS "augur_operations"."working_commits" CASCADE; -DROP TABLE IF EXISTS "spdx"."annotation_types" CASCADE; -DROP TABLE IF EXISTS "spdx"."annotations" CASCADE; -DROP TABLE IF EXISTS "spdx"."augur_repo_map" CASCADE; -DROP TABLE IF EXISTS "spdx"."creator_types" CASCADE; -DROP TABLE IF EXISTS "spdx"."creators" CASCADE; -DROP TABLE IF EXISTS "spdx"."document_namespaces" CASCADE; -DROP TABLE IF EXISTS "spdx"."documents" CASCADE; -DROP TABLE IF EXISTS "spdx"."documents_creators" CASCADE; -DROP TABLE IF EXISTS "spdx"."external_refs" CASCADE; -DROP TABLE IF EXISTS "spdx"."file_contributors" CASCADE; -DROP TABLE IF EXISTS "spdx"."file_types" CASCADE; -DROP TABLE IF EXISTS "spdx"."files" CASCADE; -DROP TABLE IF EXISTS "spdx"."files_licenses" CASCADE; -DROP TABLE IF EXISTS "spdx"."files_scans" CASCADE; -DROP TABLE IF EXISTS "spdx"."identifiers" CASCADE; -DROP TABLE IF EXISTS "spdx"."licenses" CASCADE; -DROP TABLE IF EXISTS "spdx"."packages" CASCADE; -DROP TABLE IF EXISTS "spdx"."packages_files" CASCADE; -DROP TABLE IF EXISTS "spdx"."packages_scans" CASCADE; -DROP TABLE IF EXISTS "spdx"."projects" CASCADE; -DROP TABLE IF EXISTS "spdx"."relationship_types" CASCADE; -DROP TABLE IF EXISTS "spdx"."relationships" CASCADE; -DROP TABLE IF EXISTS "spdx"."sbom_scans" CASCADE; -DROP TABLE IF EXISTS "spdx"."scanners" CASCADE; - -CREATE TABLE IF NOT EXISTS "augur_data"."analysis_log" ( - "repos_id" int4 NOT NULL, - "status" varchar COLLATE "pg_catalog"."default" NOT NULL, - "date_attempted" timestamp(0) NOT NULL DEFAULT CURRENT_TIMESTAMP -); -ALTER TABLE IF EXISTS "augur_data"."analysis_log" OWNER TO "augur"; -CREATE INDEX "repos_id" ON "augur_data"."analysis_log" USING btree ( - "repos_id" "pg_catalog"."int4_ops" ASC NULLS LAST -); - -CREATE TABLE IF NOT EXISTS "augur_data"."chaoss_metric_status" ( - "cms_id" int8 NOT NULL DEFAULT nextval('"augur_data".chaoss_metric_status_cms_id_seq'::regclass), - "cm_group" varchar COLLATE "pg_catalog"."default", - "cm_source" varchar COLLATE "pg_catalog"."default", - "cm_type" varchar COLLATE "pg_catalog"."default", - "cm_backend_status" varchar COLLATE "pg_catalog"."default", - "cm_frontend_status" varchar COLLATE "pg_catalog"."default", - "cm_defined" bool, - "cm_api_endpoint_repo" varchar COLLATE "pg_catalog"."default", - "cm_api_endpoint_rg" varchar COLLATE "pg_catalog"."default", - "cm_name" varchar COLLATE "pg_catalog"."default", - "cm_working_group" varchar COLLATE "pg_catalog"."default", - "cm_info" json, - "tool_source" varchar COLLATE "pg_catalog"."default", - "tool_version" varchar COLLATE "pg_catalog"."default", - "data_source" varchar COLLATE "pg_catalog"."default", - "data_collection_date" timestamp(0) DEFAULT CURRENT_TIMESTAMP, - "cm_working_group_focus_area" varchar COLLATE "pg_catalog"."default", - CONSTRAINT "chaoss_metric_status_pkey" PRIMARY KEY ("cms_id") -); -ALTER TABLE IF EXISTS "augur_data"."chaoss_metric_status" OWNER TO "augur"; -COMMENT ON TABLE "augur_data"."chaoss_metric_status" IS 'This table used to track CHAOSS Metric implementations in Augur, but due to the constantly changing location of that information, it is for the moment not actively populated. '; - -CREATE TABLE IF NOT EXISTS "augur_data"."commit_comment_ref" ( - "cmt_comment_id" int8 NOT NULL DEFAULT nextval('"augur_data".commit_comment_ref_cmt_comment_id_seq'::regclass), - "cmt_id" int8 NOT NULL, - "msg_id" int8 NOT NULL, - "user_id" int8 NOT NULL, - "body" text COLLATE "pg_catalog"."default", - "line" int8, - "position" int8, - "created_at" timestamp(0) NOT NULL DEFAULT CURRENT_TIMESTAMP, - "tool_source" varchar(255) COLLATE "pg_catalog"."default", - "tool_version" varchar(255) COLLATE "pg_catalog"."default", - "data_source" varchar(255) COLLATE "pg_catalog"."default", - "data_collection_date" timestamp(0) DEFAULT CURRENT_TIMESTAMP, - "cmt_comment_src_id" int8 NOT NULL, - "commit_comment_src_node_id" varchar COLLATE "pg_catalog"."default", - CONSTRAINT "commit_comment_ref_pkey" PRIMARY KEY ("cmt_comment_id"), - CONSTRAINT "commitcomment" UNIQUE ("cmt_id", "msg_id", "cmt_comment_id") -); -ALTER TABLE IF EXISTS "augur_data"."commit_comment_ref" OWNER TO "augur"; -CREATE INDEX "comment_id" ON "augur_data"."commit_comment_ref" USING btree ( - "cmt_comment_src_id" "pg_catalog"."int8_ops" ASC NULLS LAST, - "cmt_comment_id" "pg_catalog"."int8_ops" ASC NULLS LAST, - "msg_id" "pg_catalog"."int8_ops" ASC NULLS LAST -); -COMMENT ON COLUMN "augur_data"."commit_comment_ref"."cmt_comment_src_id" IS 'For data provenance, we store the source ID if it exists. '; -COMMENT ON COLUMN "augur_data"."commit_comment_ref"."commit_comment_src_node_id" IS 'For data provenance, we store the source node ID if it exists. '; - -CREATE TABLE IF NOT EXISTS "augur_data"."commit_parents" ( - "cmt_id" int8 NOT NULL, - "parent_id" int8 NOT NULL DEFAULT nextval('"augur_data".commit_parents_parent_id_seq'::regclass), - "tool_source" varchar(255) COLLATE "pg_catalog"."default", - "tool_version" varchar(255) COLLATE "pg_catalog"."default", - "data_source" varchar(255) COLLATE "pg_catalog"."default", - "data_collection_date" timestamp(0) DEFAULT CURRENT_TIMESTAMP, - CONSTRAINT "commit_parents_pkey" PRIMARY KEY ("cmt_id", "parent_id") -); -ALTER TABLE IF EXISTS "augur_data"."commit_parents" OWNER TO "augur"; -CREATE INDEX "commit_parents_ibfk_1" ON "augur_data"."commit_parents" USING btree ( - "cmt_id" "pg_catalog"."int8_ops" ASC NULLS LAST -); -CREATE INDEX "commit_parents_ibfk_2" ON "augur_data"."commit_parents" USING btree ( - "parent_id" "pg_catalog"."int8_ops" ASC NULLS LAST -); - -CREATE TABLE IF NOT EXISTS "augur_data"."commits" ( - "cmt_id" int8 NOT NULL DEFAULT nextval('"augur_data".commits_cmt_id_seq'::regclass), - "repo_id" int8 NOT NULL, - "cmt_commit_hash" varchar(80) COLLATE "pg_catalog"."default" NOT NULL, - "cmt_author_name" varchar(128) COLLATE "pg_catalog"."default" NOT NULL, - "cmt_author_raw_email" varchar(128) COLLATE "pg_catalog"."default" NOT NULL, - "cmt_author_email" varchar COLLATE "pg_catalog"."default" NOT NULL, - "cmt_author_date" varchar(10) COLLATE "pg_catalog"."default" NOT NULL, - "cmt_author_affiliation" varchar(128) COLLATE "pg_catalog"."default" DEFAULT 'NULL'::character varying, - "cmt_committer_name" varchar(128) COLLATE "pg_catalog"."default" NOT NULL, - "cmt_committer_raw_email" varchar(128) COLLATE "pg_catalog"."default" NOT NULL, - "cmt_committer_email" varchar COLLATE "pg_catalog"."default" NOT NULL, - "cmt_committer_date" varchar(10) COLLATE "pg_catalog"."default" NOT NULL, - "cmt_committer_affiliation" varchar(128) COLLATE "pg_catalog"."default" DEFAULT 'NULL'::character varying, - "cmt_added" int4 NOT NULL, - "cmt_removed" int4 NOT NULL, - "cmt_whitespace" int4 NOT NULL, - "cmt_filename" varchar(4096) COLLATE "pg_catalog"."default" NOT NULL, - "cmt_date_attempted" timestamp(0) NOT NULL, - "cmt_ght_author_id" int4, - "cmt_ght_committer_id" int4, - "cmt_ght_committed_at" timestamp(0), - "tool_source" varchar(255) COLLATE "pg_catalog"."default", - "tool_version" varchar(255) COLLATE "pg_catalog"."default", - "data_source" varchar(255) COLLATE "pg_catalog"."default", - "data_collection_date" timestamp(0) DEFAULT CURRENT_TIMESTAMP, - "cmt_author_timestamp" timestamptz(0), - "cmt_committer_timestamp" timestamptz(0), - CONSTRAINT "commits_pkey" PRIMARY KEY ("cmt_id") -); -ALTER TABLE IF EXISTS "augur_data"."commits" OWNER TO "augur"; -CREATE INDEX CONCURRENTLY "author_affiliation" ON "augur_data"."commits" USING hash ( - "cmt_author_affiliation" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" -); -CREATE INDEX CONCURRENTLY "author_cntrb_id" ON "augur_data"."commits" USING btree ( - "cmt_ght_author_id" "pg_catalog"."int4_ops" ASC NULLS LAST -); -CREATE INDEX CONCURRENTLY "author_email,author_affiliation,author_date" ON "augur_data"."commits" USING btree ( - "cmt_author_email" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST, - "cmt_author_affiliation" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST, - "cmt_author_date" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST -); -CREATE INDEX CONCURRENTLY "author_raw_email" ON "augur_data"."commits" USING btree ( - "cmt_author_raw_email" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST -); -CREATE INDEX CONCURRENTLY "cmt-author-date-idx2" ON "augur_data"."commits" USING btree ( - "cmt_author_date" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST -); -CREATE INDEX CONCURRENTLY "cmt-committer-date-idx3" ON "augur_data"."commits" USING btree ( - "cmt_committer_date" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST -); -CREATE INDEX CONCURRENTLY "cmt_author-name-idx5" ON "augur_data"."commits" USING btree ( - "cmt_committer_name" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST -); -CREATE INDEX CONCURRENTLY "cmt_author_contrib_worker" ON "augur_data"."commits" USING brin ( - "cmt_author_name" COLLATE "pg_catalog"."default" "pg_catalog"."text_minmax_ops", - "cmt_author_email" COLLATE "pg_catalog"."default" "pg_catalog"."text_minmax_ops", - "cmt_author_date" COLLATE "pg_catalog"."default" "pg_catalog"."text_minmax_ops" -); -CREATE INDEX CONCURRENTLY "cmt_cmmter-name-idx4" ON "augur_data"."commits" USING btree ( - "cmt_author_name" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST -); -CREATE INDEX CONCURRENTLY "cmt_commiter_contrib_worker" ON "augur_data"."commits" USING brin ( - "cmt_committer_name" COLLATE "pg_catalog"."default" "pg_catalog"."text_minmax_ops", - "cmt_committer_email" COLLATE "pg_catalog"."default" "pg_catalog"."text_minmax_ops", - "cmt_committer_date" COLLATE "pg_catalog"."default" "pg_catalog"."text_minmax_ops" -); -CREATE INDEX CONCURRENTLY "commited" ON "augur_data"."commits" USING btree ( - "cmt_id" "pg_catalog"."int8_ops" ASC NULLS LAST -); -CREATE INDEX CONCURRENTLY "commits_idx_cmt_email_cmt_date_cmt_name" ON "augur_data"."commits" USING btree ( - "cmt_author_email" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST, - "cmt_author_date" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST, - "cmt_author_name" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST -); -CREATE INDEX CONCURRENTLY "commits_idx_cmt_email_cmt_date_cmt_name2" ON "augur_data"."commits" USING btree ( - "cmt_committer_email" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST, - "cmt_committer_date" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST, - "cmt_committer_name" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST -); -CREATE INDEX CONCURRENTLY "commits_idx_cmt_name_cmt_date2" ON "augur_data"."commits" USING btree ( - "cmt_author_name" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST, - "cmt_author_date" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST -); -CREATE INDEX CONCURRENTLY "commits_idx_cmt_name_cmt_date_cmt_date3" ON "augur_data"."commits" USING btree ( - "cmt_committer_name" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST, - "cmt_author_date" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST, - "cmt_committer_date" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST -); -CREATE INDEX CONCURRENTLY "commits_idx_repo_id_cmt_ema_cmt_dat_cmt_nam" ON "augur_data"."commits" USING btree ( - "repo_id" "pg_catalog"."int8_ops" ASC NULLS LAST, - "cmt_author_email" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST, - "cmt_author_date" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST, - "cmt_author_name" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST -); -CREATE INDEX CONCURRENTLY "commits_idx_repo_id_cmt_ema_cmt_dat_cmt_nam2" ON "augur_data"."commits" USING btree ( - "repo_id" "pg_catalog"."int8_ops" ASC NULLS LAST, - "cmt_committer_email" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST, - "cmt_committer_date" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST, - "cmt_committer_name" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST -); -CREATE INDEX CONCURRENTLY "commits_idx_repo_id_cmt_ema_cmt_nam_cmt_dat2" ON "augur_data"."commits" USING btree ( - "repo_id" "pg_catalog"."int8_ops" ASC NULLS LAST, - "cmt_author_email" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST, - "cmt_author_name" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST, - "cmt_author_date" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST -); -CREATE INDEX CONCURRENTLY "commits_idx_repo_id_cmt_ema_cmt_nam_cmt_dat3" ON "augur_data"."commits" USING btree ( - "repo_id" "pg_catalog"."int8_ops" ASC NULLS LAST, - "cmt_committer_email" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST, - "cmt_committer_name" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST, - "cmt_author_date" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST -); -CREATE INDEX CONCURRENTLY "committer_affiliation" ON "augur_data"."commits" USING btree ( - "cmt_committer_affiliation" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST -); -CREATE INDEX CONCURRENTLY "committer_cntrb_id" ON "augur_data"."commits" USING btree ( - "cmt_ght_committer_id" "pg_catalog"."int4_ops" ASC NULLS LAST -); -CREATE INDEX CONCURRENTLY "committer_email,committer_affiliation,committer_date" ON "augur_data"."commits" USING btree ( - "cmt_committer_email" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST, - "cmt_committer_affiliation" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST, - "cmt_committer_date" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST -); -CREATE INDEX CONCURRENTLY "committer_raw_email" ON "augur_data"."commits" USING btree ( - "cmt_committer_raw_email" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST -); -CREATE INDEX CONCURRENTLY "repo_id,commit" ON "augur_data"."commits" USING btree ( - "repo_id" "pg_catalog"."int8_ops" ASC NULLS LAST, - "cmt_commit_hash" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST -); -COMMENT ON TABLE "augur_data"."commits" IS 'Starts with augur.analysis_data table and incorporates GHTorrent commit table attributes if different. -Cmt_id is from get -The author and committer ID’s are at the bottom of the table and not required for now because we want to focus on the facade schema’s properties over the ghtorrent properties when they are in conflict. '; - -CREATE TABLE IF NOT EXISTS "augur_data"."contributor_affiliations" ( - "ca_id" int8 NOT NULL DEFAULT nextval('"augur_data".contributor_affiliations_ca_id_seq'::regclass), - "ca_domain" varchar(64) COLLATE "pg_catalog"."default" NOT NULL, - "ca_start_date" date DEFAULT '1970-01-01'::date, - "tool_source" varchar(255) COLLATE "pg_catalog"."default", - "tool_version" varchar(255) COLLATE "pg_catalog"."default", - "data_source" varchar(255) COLLATE "pg_catalog"."default", - "data_collection_date" timestamp(0) DEFAULT CURRENT_TIMESTAMP, - "ca_last_used" timestamp(0) NOT NULL DEFAULT CURRENT_TIMESTAMP, - "ca_affiliation" varchar COLLATE "pg_catalog"."default", - "ca_active" int2 DEFAULT 1, - CONSTRAINT "contributor_affiliations_pkey" PRIMARY KEY ("ca_id"), - CONSTRAINT "unique_domain" UNIQUE ("ca_domain") -); -ALTER TABLE IF EXISTS "augur_data"."contributor_affiliations" OWNER TO "augur"; -COMMENT ON CONSTRAINT "unique_domain" ON "augur_data"."contributor_affiliations" IS 'Only one row should exist for any given top level domain or subdomain. '; - -CREATE TABLE IF NOT EXISTS "augur_data"."contributors" ( - "cntrb_id" int8 NOT NULL DEFAULT nextval('"augur_data".contributors_cntrb_id_seq'::regclass), - "cntrb_login" varchar(255) COLLATE "pg_catalog"."default", - "cntrb_email" varchar COLLATE "pg_catalog"."default", - "cntrb_company" varchar(255) COLLATE "pg_catalog"."default" DEFAULT NULL::character varying, - "cntrb_created_at" timestamp(0), - "cntrb_type" varchar(255) COLLATE "pg_catalog"."default", - "cntrb_fake" int2 DEFAULT 0, - "cntrb_deleted" int2 DEFAULT 0, - "cntrb_long" numeric(11,8) DEFAULT NULL::numeric, - "cntrb_lat" numeric(10,8) DEFAULT NULL::numeric, - "cntrb_country_code" char(3) COLLATE "pg_catalog"."default" DEFAULT NULL::bpchar, - "cntrb_state" varchar(255) COLLATE "pg_catalog"."default" DEFAULT NULL::character varying, - "cntrb_city" varchar(255) COLLATE "pg_catalog"."default" DEFAULT NULL::character varying, - "cntrb_location" varchar(255) COLLATE "pg_catalog"."default" DEFAULT NULL::character varying, - "cntrb_canonical" varchar COLLATE "pg_catalog"."default", - "gh_user_id" int8, - "gh_login" varchar(255) COLLATE "pg_catalog"."default", - "gh_url" varchar(255) COLLATE "pg_catalog"."default", - "gh_html_url" varchar(255) COLLATE "pg_catalog"."default", - "gh_node_id" varchar(255) COLLATE "pg_catalog"."default", - "gh_avatar_url" varchar(4000) COLLATE "pg_catalog"."default", - "gh_gravatar_id" varchar(255) COLLATE "pg_catalog"."default", - "gh_followers_url" varchar(4000) COLLATE "pg_catalog"."default", - "gh_following_url" varchar(4000) COLLATE "pg_catalog"."default", - "gh_gists_url" varchar(4000) COLLATE "pg_catalog"."default", - "gh_starred_url" varchar(4000) COLLATE "pg_catalog"."default", - "gh_subscriptions_url" varchar(4000) COLLATE "pg_catalog"."default", - "gh_organizations_url" varchar(4000) COLLATE "pg_catalog"."default", - "gh_repos_url" varchar(4000) COLLATE "pg_catalog"."default", - "gh_events_url" varchar(4000) COLLATE "pg_catalog"."default", - "gh_received_events_url" varchar(4000) COLLATE "pg_catalog"."default", - "gh_type" varchar(255) COLLATE "pg_catalog"."default", - "gh_site_admin" varchar(255) COLLATE "pg_catalog"."default", - "tool_source" varchar(255) COLLATE "pg_catalog"."default", - "tool_version" varchar(255) COLLATE "pg_catalog"."default", - "data_source" varchar(255) COLLATE "pg_catalog"."default", - "data_collection_date" timestamp(0) DEFAULT CURRENT_TIMESTAMP, - "cntrb_full_name" varchar COLLATE "pg_catalog"."default", - "cntrb_last_used" timestamptz(0) DEFAULT NULL::timestamp with time zone, - CONSTRAINT "contributors_pkey" PRIMARY KEY ("cntrb_id") -); -ALTER TABLE IF EXISTS "augur_data"."contributors" OWNER TO "augur"; -CREATE INDEX "cnt-fullname" ON "augur_data"."contributors" USING hash ( - "cntrb_full_name" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" -); -CREATE INDEX "cntrb-theemail" ON "augur_data"."contributors" USING hash ( - "cntrb_email" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" -); -CREATE INDEX "cntrb_login_platform_index" ON "augur_data"."contributors" USING btree ( - "cntrb_login" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST -); -CREATE INDEX "contributor_delete_finder" ON "augur_data"."contributors" USING brin ( - "cntrb_id" "pg_catalog"."int8_minmax_ops", - "cntrb_email" COLLATE "pg_catalog"."default" "pg_catalog"."text_minmax_ops" -); -CREATE INDEX "contributor_worker_email_finder" ON "augur_data"."contributors" USING brin ( - "cntrb_email" COLLATE "pg_catalog"."default" "pg_catalog"."text_minmax_ops" -); -CREATE INDEX "contributor_worker_finder" ON "augur_data"."contributors" USING brin ( - "cntrb_login" COLLATE "pg_catalog"."default" "pg_catalog"."text_minmax_ops", - "cntrb_email" COLLATE "pg_catalog"."default" "pg_catalog"."text_minmax_ops", - "cntrb_id" "pg_catalog"."int8_minmax_ops" -); -CREATE INDEX "contributor_worker_fullname_finder" ON "augur_data"."contributors" USING brin ( - "cntrb_full_name" COLLATE "pg_catalog"."default" "pg_catalog"."text_minmax_ops" -); -CREATE INDEX "contributors_idx_cntrb_email3" ON "augur_data"."contributors" USING btree ( - "cntrb_email" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST -); -CREATE INDEX "login" ON "augur_data"."contributors" USING btree ( - "cntrb_login" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST -); -CREATE INDEX "login-contributor-idx" ON "augur_data"."contributors" USING btree ( - "cntrb_login" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST -); -COMMENT ON COLUMN "augur_data"."contributors"."cntrb_login" IS 'Will be a double population with the same value as gh_login for github, but the local value for other systems. '; -COMMENT ON COLUMN "augur_data"."contributors"."cntrb_email" IS 'This needs to be here for matching contributor ids, which are augur, to the commit information. '; -COMMENT ON COLUMN "augur_data"."contributors"."cntrb_type" IS 'Present in another models. It is not currently used in Augur. '; -COMMENT ON COLUMN "augur_data"."contributors"."gh_login" IS 'populated with the github user name for github originated data. '; -COMMENT ON TABLE "augur_data"."contributors" IS 'For GitHub, this should be repeated from gh_login. for other systems, it should be that systems login. '; - -CREATE TABLE IF NOT EXISTS "augur_data"."contributors_aliases" ( - "cntrb_id" int8 NOT NULL, - "cntrb_a_id" int8 NOT NULL DEFAULT nextval('"augur_data".contributors_aliases_cntrb_a_id_seq'::regclass), - "canonical_email" varchar COLLATE "pg_catalog"."default" NOT NULL, - "alias_email" varchar(128) COLLATE "pg_catalog"."default" NOT NULL, - "cntrb_active" int2 NOT NULL DEFAULT 1, - "cntrb_last_modified" timestamp(0) NOT NULL DEFAULT CURRENT_TIMESTAMP, - "tool_source" varchar(255) COLLATE "pg_catalog"."default", - "tool_version" varchar(255) COLLATE "pg_catalog"."default", - "data_source" varchar(255) COLLATE "pg_catalog"."default", - "data_collection_date" timestamp(0) DEFAULT CURRENT_TIMESTAMP, - CONSTRAINT "contributors_aliases_pkey" PRIMARY KEY ("cntrb_id", "cntrb_a_id") -); -ALTER TABLE IF EXISTS "augur_data"."contributors_aliases" OWNER TO "augur"; -CREATE INDEX "alias,active" ON "augur_data"."contributors_aliases" USING btree ( - "alias_email" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST, - "cntrb_active" "pg_catalog"."int2_ops" ASC NULLS LAST -); -CREATE UNIQUE INDEX "canonical,alias" ON "augur_data"."contributors_aliases" USING btree ( - "canonical_email" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST, - "alias_email" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST -); -CREATE INDEX "issue-alias-cntrb-idx1" ON "augur_data"."contributors_aliases" USING btree ( - "cntrb_id" "pg_catalog"."int8_ops" ASC NULLS LAST -); -CREATE INDEX "issue-alias-cntrb-idx2" ON "augur_data"."contributors_aliases" USING btree ( - "cntrb_a_id" "pg_catalog"."int8_ops" ASC NULLS LAST -); -COMMENT ON TABLE "augur_data"."contributors_aliases" IS 'An alias will need to be created for every contributor in this model, otherwise we will have to look in 2 places. '; - -CREATE TABLE IF NOT EXISTS "augur_data"."contributors_history" ( - "cntrb_history_id" int8 NOT NULL DEFAULT nextval('"augur_data".contributors_history_cntrb_history_id_seq'::regclass), - "cntrb_id" int8 NOT NULL, - "cntrb_history_timestamp" timestamp(0) NOT NULL DEFAULT CURRENT_TIMESTAMP, - "cntrb_history_current_bool" bool, - "cntrb_organizations_list" json, - "cntrb_gists_count" int8, - "cntrb_starred_count" int8, - "cntrb_following_count" int8, - "cntrb_follower_count" int8, - "cntrb_login" varchar(255) COLLATE "pg_catalog"."default" NOT NULL, - "cntrb_email" varchar(255) COLLATE "pg_catalog"."default", - "cntrb_company" varchar(255) COLLATE "pg_catalog"."default" DEFAULT NULL::character varying, - "cntrb_created_at" timestamp(0) NOT NULL, - "cntrb_type" varchar(255) COLLATE "pg_catalog"."default", - "cntrb_fake" int2 NOT NULL DEFAULT 0, - "cntrb_deleted" int2 NOT NULL DEFAULT 0, - "cntrb_long" numeric(11,8) DEFAULT NULL::numeric, - "cntrb_lat" numeric(10,8) DEFAULT NULL::numeric, - "cntrb_country_code" char(3) COLLATE "pg_catalog"."default" DEFAULT NULL::bpchar, - "cntrb_state" varchar(255) COLLATE "pg_catalog"."default" DEFAULT NULL::character varying, - "cntrb_city" varchar(255) COLLATE "pg_catalog"."default" DEFAULT NULL::character varying, - "cntrb_location" varchar(255) COLLATE "pg_catalog"."default" DEFAULT NULL::character varying, - "cntrb_canonical" varchar(128) COLLATE "pg_catalog"."default", - "gh_user_id" int8, - "gh_login" varchar(255) COLLATE "pg_catalog"."default", - "gh_url" varchar(255) COLLATE "pg_catalog"."default", - "gh_html_url" varchar(255) COLLATE "pg_catalog"."default", - "gh_node_id" varchar(255) COLLATE "pg_catalog"."default", - "gh_avatar_url" varchar(4000) COLLATE "pg_catalog"."default", - "gh_gravatar_id" varchar(255) COLLATE "pg_catalog"."default", - "gh_followers_url" varchar(4000) COLLATE "pg_catalog"."default", - "gh_following_url" varchar(4000) COLLATE "pg_catalog"."default", - "gh_gists_url" varchar(4000) COLLATE "pg_catalog"."default", - "gh_starred_url" varchar(4000) COLLATE "pg_catalog"."default", - "gh_subscriptions_url" varchar(4000) COLLATE "pg_catalog"."default", - "gh_organizations_url" varchar(4000) COLLATE "pg_catalog"."default", - "gh_repos_url" varchar(4000) COLLATE "pg_catalog"."default", - "gh_events_url" varchar(4000) COLLATE "pg_catalog"."default", - "gh_received_events_url" varchar(4000) COLLATE "pg_catalog"."default", - "gh_type" varchar(255) COLLATE "pg_catalog"."default", - "gh_site_admin" varchar(255) COLLATE "pg_catalog"."default", - "tool_source" varchar(255) COLLATE "pg_catalog"."default", - "tool_version" varchar(255) COLLATE "pg_catalog"."default", - "data_source" varchar(255) COLLATE "pg_catalog"."default", - "data_collection_date" timestamp(0) DEFAULT CURRENT_TIMESTAMP, - CONSTRAINT "contributors_history_pkey" PRIMARY KEY ("cntrb_history_id") -); -ALTER TABLE IF EXISTS "augur_data"."contributors_history" OWNER TO "augur"; -CREATE INDEX "contrb-history-dix1" ON "augur_data"."contributors_history" USING btree ( - "cntrb_id" "pg_catalog"."int8_ops" ASC NULLS LAST -); -CREATE INDEX "login_index_2" ON "augur_data"."contributors_history" USING btree ( - "cntrb_login" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST -); -COMMENT ON COLUMN "augur_data"."contributors_history"."cntrb_history_current_bool" IS 'At some point it would be great to have a boolean updated by a contributor worker that set the most recent contributor data to true. '; -COMMENT ON COLUMN "augur_data"."contributors_history"."cntrb_login" IS 'Will be a double population with the same value as gh_login for github, but the local value for other systems. '; -COMMENT ON COLUMN "augur_data"."contributors_history"."cntrb_email" IS 'This needs to be here for matching contributor ids, which are augur, to the commit information. '; -COMMENT ON COLUMN "augur_data"."contributors_history"."cntrb_type" IS 'Present in another models. It is not currently used in Augur. '; -COMMENT ON COLUMN "augur_data"."contributors_history"."gh_login" IS 'populated with the github user name for github originated data. '; -COMMENT ON TABLE "augur_data"."contributors_history" IS 'For GitHub, this should be repeated from gh_login. for other systems, it should be that systems login. - -At this time the table is not populated. '; - -CREATE TABLE IF NOT EXISTS "augur_data"."discourse_insights" ( - "msg_discourse_id" serial8, - "msg_id" int8, - "discourse_act" varchar, - "tool_source" varchar, - "tool_version" varchar, - "data_source" varchar, - "data_collection_date" timestamptz DEFAULT CURRENT_TIMESTAMP, - PRIMARY KEY ("msg_discourse_id") -); -ALTER TABLE IF EXISTS "augur_data"."discourse_insights" OWNER TO "augur"; - -CREATE TABLE IF NOT EXISTS "augur_data"."dm_repo_annual" ( - "repo_id" int8 NOT NULL, - "email" varchar(128) COLLATE "pg_catalog"."default" NOT NULL, - "affiliation" varchar(128) COLLATE "pg_catalog"."default" DEFAULT 'NULL'::character varying, - "year" int2 NOT NULL, - "added" int8 NOT NULL, - "removed" int8 NOT NULL, - "whitespace" int8 NOT NULL, - "files" int8 NOT NULL, - "patches" int8 NOT NULL, - "tool_source" varchar(255) COLLATE "pg_catalog"."default", - "tool_version" varchar(255) COLLATE "pg_catalog"."default", - "data_source" varchar(255) COLLATE "pg_catalog"."default", - "data_collection_date" timestamp(0) DEFAULT CURRENT_TIMESTAMP -); -ALTER TABLE IF EXISTS "augur_data"."dm_repo_annual" OWNER TO "augur"; -CREATE INDEX "repo_id,affiliation_copy_1" ON "augur_data"."dm_repo_annual" USING btree ( - "repo_id" "pg_catalog"."int8_ops" ASC NULLS LAST, - "affiliation" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST -); -CREATE INDEX "repo_id,email_copy_1" ON "augur_data"."dm_repo_annual" USING btree ( - "repo_id" "pg_catalog"."int8_ops" ASC NULLS LAST, - "email" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST -); - -CREATE TABLE IF NOT EXISTS "augur_data"."dm_repo_group_annual" ( - "repo_group_id" int8 NOT NULL, - "email" varchar(128) COLLATE "pg_catalog"."default" NOT NULL, - "affiliation" varchar(128) COLLATE "pg_catalog"."default" DEFAULT 'NULL'::character varying, - "year" int2 NOT NULL, - "added" int8 NOT NULL, - "removed" int8 NOT NULL, - "whitespace" int8 NOT NULL, - "files" int8 NOT NULL, - "patches" int8 NOT NULL, - "tool_source" varchar(255) COLLATE "pg_catalog"."default", - "tool_version" varchar(255) COLLATE "pg_catalog"."default", - "data_source" varchar(255) COLLATE "pg_catalog"."default", - "data_collection_date" timestamp(0) DEFAULT CURRENT_TIMESTAMP -); -ALTER TABLE IF EXISTS "augur_data"."dm_repo_group_annual" OWNER TO "augur"; -CREATE INDEX "projects_id,affiliation_copy_1" ON "augur_data"."dm_repo_group_annual" USING btree ( - "repo_group_id" "pg_catalog"."int8_ops" ASC NULLS LAST, - "affiliation" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST -); -CREATE INDEX "projects_id,email_copy_1" ON "augur_data"."dm_repo_group_annual" USING btree ( - "repo_group_id" "pg_catalog"."int8_ops" ASC NULLS LAST, - "email" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST -); - -CREATE TABLE IF NOT EXISTS "augur_data"."dm_repo_group_monthly" ( - "repo_group_id" int8 NOT NULL, - "email" varchar(128) COLLATE "pg_catalog"."default" NOT NULL, - "affiliation" varchar(128) COLLATE "pg_catalog"."default" DEFAULT 'NULL'::character varying, - "month" int2 NOT NULL, - "year" int2 NOT NULL, - "added" int8 NOT NULL, - "removed" int8 NOT NULL, - "whitespace" int8 NOT NULL, - "files" int8 NOT NULL, - "patches" int8 NOT NULL, - "tool_source" varchar(255) COLLATE "pg_catalog"."default", - "tool_version" varchar(255) COLLATE "pg_catalog"."default", - "data_source" varchar(255) COLLATE "pg_catalog"."default", - "data_collection_date" timestamp(0) DEFAULT CURRENT_TIMESTAMP -); -ALTER TABLE IF EXISTS "augur_data"."dm_repo_group_monthly" OWNER TO "augur"; -CREATE INDEX "projects_id,affiliation_copy_2" ON "augur_data"."dm_repo_group_monthly" USING btree ( - "repo_group_id" "pg_catalog"."int8_ops" ASC NULLS LAST, - "affiliation" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST -); -CREATE INDEX "projects_id,email_copy_2" ON "augur_data"."dm_repo_group_monthly" USING btree ( - "repo_group_id" "pg_catalog"."int8_ops" ASC NULLS LAST, - "email" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST -); -CREATE INDEX "projects_id,year,affiliation_copy_1" ON "augur_data"."dm_repo_group_monthly" USING btree ( - "repo_group_id" "pg_catalog"."int8_ops" ASC NULLS LAST, - "year" "pg_catalog"."int2_ops" ASC NULLS LAST, - "affiliation" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST -); -CREATE INDEX "projects_id,year,email_copy_1" ON "augur_data"."dm_repo_group_monthly" USING btree ( - "repo_group_id" "pg_catalog"."int8_ops" ASC NULLS LAST, - "year" "pg_catalog"."int2_ops" ASC NULLS LAST, - "email" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST -); - -CREATE TABLE IF NOT EXISTS "augur_data"."dm_repo_group_weekly" ( - "repo_group_id" int8 NOT NULL, - "email" varchar(128) COLLATE "pg_catalog"."default" NOT NULL, - "affiliation" varchar(128) COLLATE "pg_catalog"."default" DEFAULT 'NULL'::character varying, - "week" int2 NOT NULL, - "year" int2 NOT NULL, - "added" int8 NOT NULL, - "removed" int8 NOT NULL, - "whitespace" int8 NOT NULL, - "files" int8 NOT NULL, - "patches" int8 NOT NULL, - "tool_source" varchar(255) COLLATE "pg_catalog"."default", - "tool_version" varchar(255) COLLATE "pg_catalog"."default", - "data_source" varchar(255) COLLATE "pg_catalog"."default", - "data_collection_date" timestamp(0) DEFAULT CURRENT_TIMESTAMP -); -ALTER TABLE IF EXISTS "augur_data"."dm_repo_group_weekly" OWNER TO "augur"; -CREATE INDEX "projects_id,affiliation" ON "augur_data"."dm_repo_group_weekly" USING btree ( - "repo_group_id" "pg_catalog"."int8_ops" ASC NULLS LAST, - "affiliation" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST -); -CREATE INDEX "projects_id,email" ON "augur_data"."dm_repo_group_weekly" USING btree ( - "repo_group_id" "pg_catalog"."int8_ops" ASC NULLS LAST, - "email" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST -); -CREATE INDEX "projects_id,year,affiliation" ON "augur_data"."dm_repo_group_weekly" USING btree ( - "repo_group_id" "pg_catalog"."int8_ops" ASC NULLS LAST, - "year" "pg_catalog"."int2_ops" ASC NULLS LAST, - "affiliation" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST -); -CREATE INDEX "projects_id,year,email" ON "augur_data"."dm_repo_group_weekly" USING btree ( - "repo_group_id" "pg_catalog"."int8_ops" ASC NULLS LAST, - "year" "pg_catalog"."int2_ops" ASC NULLS LAST, - "email" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST -); - -CREATE TABLE IF NOT EXISTS "augur_data"."dm_repo_monthly" ( - "repo_id" int8 NOT NULL, - "email" varchar(128) COLLATE "pg_catalog"."default" NOT NULL, - "affiliation" varchar(128) COLLATE "pg_catalog"."default" DEFAULT 'NULL'::character varying, - "month" int2 NOT NULL, - "year" int2 NOT NULL, - "added" int8 NOT NULL, - "removed" int8 NOT NULL, - "whitespace" int8 NOT NULL, - "files" int8 NOT NULL, - "patches" int8 NOT NULL, - "tool_source" varchar(255) COLLATE "pg_catalog"."default", - "tool_version" varchar(255) COLLATE "pg_catalog"."default", - "data_source" varchar(255) COLLATE "pg_catalog"."default", - "data_collection_date" timestamp(0) DEFAULT CURRENT_TIMESTAMP -); -ALTER TABLE IF EXISTS "augur_data"."dm_repo_monthly" OWNER TO "augur"; -CREATE INDEX "repo_id,affiliation_copy_2" ON "augur_data"."dm_repo_monthly" USING btree ( - "repo_id" "pg_catalog"."int8_ops" ASC NULLS LAST, - "affiliation" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST -); -CREATE INDEX "repo_id,email_copy_2" ON "augur_data"."dm_repo_monthly" USING btree ( - "repo_id" "pg_catalog"."int8_ops" ASC NULLS LAST, - "email" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST -); -CREATE INDEX "repo_id,year,affiliation_copy_1" ON "augur_data"."dm_repo_monthly" USING btree ( - "repo_id" "pg_catalog"."int8_ops" ASC NULLS LAST, - "year" "pg_catalog"."int2_ops" ASC NULLS LAST, - "affiliation" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST -); -CREATE INDEX "repo_id,year,email_copy_1" ON "augur_data"."dm_repo_monthly" USING btree ( - "repo_id" "pg_catalog"."int8_ops" ASC NULLS LAST, - "year" "pg_catalog"."int2_ops" ASC NULLS LAST, - "email" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST -); - -CREATE TABLE IF NOT EXISTS "augur_data"."dm_repo_weekly" ( - "repo_id" int8 NOT NULL, - "email" varchar(128) COLLATE "pg_catalog"."default" NOT NULL, - "affiliation" varchar(128) COLLATE "pg_catalog"."default" DEFAULT 'NULL'::character varying, - "week" int2 NOT NULL, - "year" int2 NOT NULL, - "added" int8 NOT NULL, - "removed" int8 NOT NULL, - "whitespace" int8 NOT NULL, - "files" int8 NOT NULL, - "patches" int8 NOT NULL, - "tool_source" varchar(255) COLLATE "pg_catalog"."default", - "tool_version" varchar(255) COLLATE "pg_catalog"."default", - "data_source" varchar(255) COLLATE "pg_catalog"."default", - "data_collection_date" timestamp(0) DEFAULT CURRENT_TIMESTAMP -); -ALTER TABLE IF EXISTS "augur_data"."dm_repo_weekly" OWNER TO "augur"; -CREATE INDEX "repo_id,affiliation" ON "augur_data"."dm_repo_weekly" USING btree ( - "repo_id" "pg_catalog"."int8_ops" ASC NULLS LAST, - "affiliation" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST -); -CREATE INDEX "repo_id,email" ON "augur_data"."dm_repo_weekly" USING btree ( - "repo_id" "pg_catalog"."int8_ops" ASC NULLS LAST, - "email" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST -); -CREATE INDEX "repo_id,year,affiliation" ON "augur_data"."dm_repo_weekly" USING btree ( - "repo_id" "pg_catalog"."int8_ops" ASC NULLS LAST, - "year" "pg_catalog"."int2_ops" ASC NULLS LAST, - "affiliation" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST -); -CREATE INDEX "repo_id,year,email" ON "augur_data"."dm_repo_weekly" USING btree ( - "repo_id" "pg_catalog"."int8_ops" ASC NULLS LAST, - "year" "pg_catalog"."int2_ops" ASC NULLS LAST, - "email" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST -); - -CREATE TABLE IF NOT EXISTS "augur_data"."exclude" ( - "id" int4 NOT NULL, - "projects_id" int4 NOT NULL, - "email" varchar(128) COLLATE "pg_catalog"."default" DEFAULT 'NULL'::character varying, - "domain" varchar(128) COLLATE "pg_catalog"."default" DEFAULT 'NULL'::character varying, - CONSTRAINT "exclude_pkey" PRIMARY KEY ("id") -); -ALTER TABLE IF EXISTS "augur_data"."exclude" OWNER TO "augur"; - -CREATE TABLE IF NOT EXISTS "augur_data"."issue_assignees" ( - "issue_assignee_id" int8 NOT NULL DEFAULT nextval('"augur_data".issue_assignees_issue_assignee_id_seq'::regclass), - "issue_id" int8, - "cntrb_id" int8, - "tool_source" varchar COLLATE "pg_catalog"."default", - "tool_version" varchar COLLATE "pg_catalog"."default", - "data_source" varchar COLLATE "pg_catalog"."default", - "data_collection_date" timestamp(0) DEFAULT CURRENT_TIMESTAMP, - "issue_assignee_src_id" int8, - "issue_assignee_src_node" varchar COLLATE "pg_catalog"."default", - CONSTRAINT "issue_assignees_pkey" PRIMARY KEY ("issue_assignee_id") -); -ALTER TABLE IF EXISTS "augur_data"."issue_assignees" OWNER TO "augur"; -CREATE INDEX "issue-cntrb-assign-idx-1" ON "augur_data"."issue_assignees" USING btree ( - "cntrb_id" "pg_catalog"."int8_ops" ASC NULLS LAST -); -COMMENT ON COLUMN "augur_data"."issue_assignees"."issue_assignee_src_id" IS 'This ID comes from the source. In the case of GitHub, it is the id that is the first field returned from the issue events API in the issue_assignees embedded JSON object. We may discover it is an ID for the person themselves; but my hypothesis is that its not.'; -COMMENT ON COLUMN "augur_data"."issue_assignees"."issue_assignee_src_node" IS 'This character based identifier comes from the source. In the case of GitHub, it is the id that is the second field returned from the issue events API in the issue_assignees embedded JSON object. We may discover it is an ID for the person themselves; but my hypothesis is that its not.'; - -CREATE TABLE IF NOT EXISTS "augur_data"."issue_events" ( - "event_id" int8 NOT NULL DEFAULT nextval('"augur_data".issue_events_event_id_seq'::regclass), - "issue_id" int8 NOT NULL, - "cntrb_id" int8 NOT NULL, - "action" varchar(255) COLLATE "pg_catalog"."default" NOT NULL, - "action_commit_hash" varchar COLLATE "pg_catalog"."default", - "created_at" timestamp(0) NOT NULL DEFAULT CURRENT_TIMESTAMP, - "node_id" varchar COLLATE "pg_catalog"."default", - "node_url" varchar COLLATE "pg_catalog"."default", - "tool_source" varchar(255) COLLATE "pg_catalog"."default", - "tool_version" varchar(255) COLLATE "pg_catalog"."default", - "data_source" varchar(255) COLLATE "pg_catalog"."default", - "data_collection_date" timestamp(0) DEFAULT CURRENT_TIMESTAMP, - "issue_event_src_id" int8, - CONSTRAINT "issue_events_pkey" PRIMARY KEY ("event_id") -); -ALTER TABLE IF EXISTS "augur_data"."issue_events" OWNER TO "augur"; -CREATE INDEX "issue-cntrb-idx2" ON "augur_data"."issue_events" USING btree ( - "issue_event_src_id" "pg_catalog"."int8_ops" ASC NULLS LAST -); -CREATE INDEX "issue_events_ibfk_1" ON "augur_data"."issue_events" USING btree ( - "issue_id" "pg_catalog"."int8_ops" ASC NULLS LAST -); -CREATE INDEX "issue_events_ibfk_2" ON "augur_data"."issue_events" USING btree ( - "cntrb_id" "pg_catalog"."int8_ops" ASC NULLS LAST -); -COMMENT ON COLUMN "augur_data"."issue_events"."node_id" IS 'This should be renamed to issue_event_src_node_id, as its the varchar identifier in GitHub and likely common in other sources as well. However, since it was created before we came to this naming standard and workers are built around it, we have it simply named as node_id. Anywhere you see node_id in the schema, it comes from GitHubs terminology.'; -COMMENT ON COLUMN "augur_data"."issue_events"."issue_event_src_id" IS 'This ID comes from the source. In the case of GitHub, it is the id that is the first field returned from the issue events API'; - -CREATE TABLE IF NOT EXISTS "augur_data"."issue_labels" ( - "issue_label_id" int8 NOT NULL DEFAULT nextval('"augur_data".issue_labels_issue_label_id_seq'::regclass), - "issue_id" int8, - "label_text" varchar COLLATE "pg_catalog"."default", - "label_description" varchar COLLATE "pg_catalog"."default", - "label_color" varchar COLLATE "pg_catalog"."default", - "tool_source" varchar(255) COLLATE "pg_catalog"."default", - "tool_version" varchar(255) COLLATE "pg_catalog"."default", - "data_source" varchar(255) COLLATE "pg_catalog"."default", - "data_collection_date" timestamp(0) DEFAULT CURRENT_TIMESTAMP, - "label_src_id" int8, - "label_src_node_id" varchar COLLATE "pg_catalog"."default", - CONSTRAINT "issue_labels_pkey" PRIMARY KEY ("issue_label_id") -); -ALTER TABLE IF EXISTS "augur_data"."issue_labels" OWNER TO "augur"; -COMMENT ON COLUMN "augur_data"."issue_labels"."label_src_id" IS 'This character based identifier (node) comes from the source. In the case of GitHub, it is the id that is the second field returned from the issue events API JSON subsection for issues.'; - -CREATE TABLE IF NOT EXISTS "augur_data"."issue_message_ref" ( - "issue_msg_ref_id" int8 NOT NULL DEFAULT nextval('"augur_data".issue_message_ref_issue_msg_ref_id_seq'::regclass), - "issue_id" int8, - "msg_id" int8, - "tool_source" varchar(255) COLLATE "pg_catalog"."default", - "tool_version" varchar(255) COLLATE "pg_catalog"."default", - "data_source" varchar(255) COLLATE "pg_catalog"."default", - "data_collection_date" timestamp(0) DEFAULT CURRENT_TIMESTAMP, - "issue_msg_ref_src_comment_id" int8, - "issue_msg_ref_src_node_id" varchar COLLATE "pg_catalog"."default", - CONSTRAINT "issue_message_ref_pkey" PRIMARY KEY ("issue_msg_ref_id") -); -ALTER TABLE IF EXISTS "augur_data"."issue_message_ref" OWNER TO "augur"; -COMMENT ON COLUMN "augur_data"."issue_message_ref"."issue_msg_ref_src_comment_id" IS 'This ID comes from the source. In the case of GitHub, it is the id that is the first field returned from the issue comments API'; -COMMENT ON COLUMN "augur_data"."issue_message_ref"."issue_msg_ref_src_node_id" IS 'This character based identifier comes from the source. In the case of GitHub, it is the id that is the first field returned from the issue comments API'; - -CREATE TABLE IF NOT EXISTS "augur_data"."issues" ( - "issue_id" int8 NOT NULL DEFAULT nextval('"augur_data".issue_seq'::regclass), - "repo_id" int8, - "reporter_id" int8, - "pull_request" int8, - "pull_request_id" int8, - "created_at" timestamp(0), - "issue_title" varchar(500) COLLATE "pg_catalog"."default", - "issue_body" text COLLATE "pg_catalog"."default", - "cntrb_id" int8, - "comment_count" int8, - "updated_at" timestamp(0), - "closed_at" timestamp(0), - "due_on" timestamp(0), - "repository_url" varchar(4000) COLLATE "pg_catalog"."default", - "issue_url" varchar(4000) COLLATE "pg_catalog"."default", - "labels_url" varchar(4000) COLLATE "pg_catalog"."default", - "comments_url" varchar(4000) COLLATE "pg_catalog"."default", - "events_url" varchar(4000) COLLATE "pg_catalog"."default", - "html_url" varchar(4000) COLLATE "pg_catalog"."default", - "issue_state" varchar(255) COLLATE "pg_catalog"."default", - "issue_node_id" varchar COLLATE "pg_catalog"."default", - "gh_issue_id" int8, - "gh_user_id" int8, - "tool_source" varchar(255) COLLATE "pg_catalog"."default", - "tool_version" varchar(255) COLLATE "pg_catalog"."default", - "data_source" varchar(255) COLLATE "pg_catalog"."default", - "data_collection_date" timestamp(0) DEFAULT CURRENT_TIMESTAMP, - "gh_issue_number" int8, - CONSTRAINT "issues_pkey" PRIMARY KEY ("issue_id") -); -ALTER TABLE IF EXISTS "augur_data"."issues" OWNER TO "augur"; -CREATE INDEX "issue-cntrb-dix2" ON "augur_data"."issues" USING btree ( - "cntrb_id" "pg_catalog"."int8_ops" ASC NULLS LAST -); -CREATE INDEX "issues_ibfk_1" ON "augur_data"."issues" USING btree ( - "repo_id" "pg_catalog"."int8_ops" ASC NULLS LAST -); -CREATE INDEX "issues_ibfk_2" ON "augur_data"."issues" USING btree ( - "reporter_id" "pg_catalog"."int8_ops" ASC NULLS LAST -); -CREATE INDEX "issues_ibfk_4" ON "augur_data"."issues" USING btree ( - "pull_request_id" "pg_catalog"."int8_ops" ASC NULLS LAST -); -COMMENT ON COLUMN "augur_data"."issues"."reporter_id" IS 'The ID of the person who opened the issue. '; -COMMENT ON COLUMN "augur_data"."issues"."cntrb_id" IS 'The ID of the person who closed the issue. '; - -CREATE TABLE IF NOT EXISTS "augur_data"."libraries" ( - "library_id" int8 NOT NULL DEFAULT nextval('"augur_data".libraries_library_id_seq'::regclass), - "repo_id" int8, - "platform" varchar(255) COLLATE "pg_catalog"."default" DEFAULT NULL::character varying, - "name" varchar(255) COLLATE "pg_catalog"."default" DEFAULT NULL::character varying, - "created_timestamp" timestamp(0) DEFAULT NULL::timestamp without time zone, - "updated_timestamp" timestamp(0) DEFAULT NULL::timestamp without time zone, - "library_description" varchar(2000) COLLATE "pg_catalog"."default" DEFAULT NULL::character varying, - "keywords" varchar(255) COLLATE "pg_catalog"."default" DEFAULT NULL::character varying, - "library_homepage" varchar(1000) COLLATE "pg_catalog"."default" DEFAULT NULL::character varying, - "license" varchar(255) COLLATE "pg_catalog"."default" DEFAULT NULL::character varying, - "version_count" int4, - "latest_release_timestamp" varchar(255) COLLATE "pg_catalog"."default" DEFAULT NULL::character varying, - "latest_release_number" varchar(255) COLLATE "pg_catalog"."default" DEFAULT NULL::character varying, - "package_manager_id" varchar(255) COLLATE "pg_catalog"."default" DEFAULT NULL::character varying, - "dependency_count" int4, - "dependent_library_count" int4, - "primary_language" varchar(255) COLLATE "pg_catalog"."default" DEFAULT NULL::character varying, - "tool_source" varchar(255) COLLATE "pg_catalog"."default", - "tool_version" varchar(255) COLLATE "pg_catalog"."default", - "data_source" varchar(255) COLLATE "pg_catalog"."default", - "data_collection_date" timestamp(0), - CONSTRAINT "libraries_pkey" PRIMARY KEY ("library_id") -); -ALTER TABLE IF EXISTS "augur_data"."libraries" OWNER TO "augur"; - -CREATE TABLE IF NOT EXISTS "augur_data"."library_dependencies" ( - "lib_dependency_id" int8 NOT NULL DEFAULT nextval('"augur_data".library_dependencies_lib_dependency_id_seq'::regclass), - "library_id" int8, - "manifest_platform" varchar(255) COLLATE "pg_catalog"."default" DEFAULT NULL::character varying, - "manifest_filepath" varchar(1000) COLLATE "pg_catalog"."default" DEFAULT NULL::character varying, - "manifest_kind" varchar(255) COLLATE "pg_catalog"."default" DEFAULT NULL::character varying, - "repo_id_branch" varchar(255) COLLATE "pg_catalog"."default" NOT NULL, - "tool_source" varchar(255) COLLATE "pg_catalog"."default", - "tool_version" varchar(255) COLLATE "pg_catalog"."default", - "data_source" varchar(255) COLLATE "pg_catalog"."default", - "data_collection_date" timestamp(0), - CONSTRAINT "library_dependencies_pkey" PRIMARY KEY ("lib_dependency_id") -); -ALTER TABLE IF EXISTS "augur_data"."library_dependencies" OWNER TO "augur"; -CREATE INDEX "REPO_DEP" ON "augur_data"."library_dependencies" USING btree ( - "library_id" "pg_catalog"."int8_ops" ASC NULLS LAST -); - -CREATE TABLE IF NOT EXISTS "augur_data"."library_version" ( - "library_version_id" int8 NOT NULL DEFAULT nextval('"augur_data".library_version_library_version_id_seq'::regclass), - "library_id" int8, - "library_platform" varchar(255) COLLATE "pg_catalog"."default" DEFAULT NULL::character varying, - "version_number" varchar(255) COLLATE "pg_catalog"."default" DEFAULT NULL::character varying, - "version_release_date" timestamp(0) DEFAULT NULL::timestamp without time zone, - "tool_source" varchar(255) COLLATE "pg_catalog"."default", - "tool_version" varchar(255) COLLATE "pg_catalog"."default", - "data_source" varchar(255) COLLATE "pg_catalog"."default", - "data_collection_date" timestamp(0), - CONSTRAINT "library_version_pkey" PRIMARY KEY ("library_version_id") -); -ALTER TABLE IF EXISTS "augur_data"."library_version" OWNER TO "augur"; - -CREATE TABLE IF NOT EXISTS "augur_data"."lstm_anomaly_models" ( - "model_id" int8 NOT NULL DEFAULT nextval('"augur_data".lstm_anomaly_models_model_id_seq'::regclass), - "model_name" varchar COLLATE "pg_catalog"."default", - "model_description" varchar COLLATE "pg_catalog"."default", - "look_back_days" int8, - "training_days" int8, - "batch_size" int8, - "metric" varchar COLLATE "pg_catalog"."default", - "tool_source" varchar COLLATE "pg_catalog"."default", - "tool_version" varchar COLLATE "pg_catalog"."default", - "data_source" varchar COLLATE "pg_catalog"."default", - "data_collection_date" timestamp(6) DEFAULT CURRENT_TIMESTAMP, - CONSTRAINT "lstm_anomaly_models_pkey" PRIMARY KEY ("model_id") -); -ALTER TABLE IF EXISTS "augur_data"."lstm_anomaly_models" OWNER TO "augur"; - -CREATE TABLE IF NOT EXISTS "augur_data"."lstm_anomaly_results" ( - "result_id" int8 NOT NULL DEFAULT nextval('"augur_data".lstm_anomaly_results_result_id_seq'::regclass), - "repo_id" int8, - "repo_category" varchar COLLATE "pg_catalog"."default", - "model_id" int8, - "metric" varchar COLLATE "pg_catalog"."default", - "contamination_factor" float8, - "mean_absolute_error" float8, - "remarks" varchar COLLATE "pg_catalog"."default", - "metric_field" varchar COLLATE "pg_catalog"."default", - "mean_absolute_actual_value" float8, - "mean_absolute_prediction_value" float8, - "tool_source" varchar COLLATE "pg_catalog"."default", - "tool_version" varchar COLLATE "pg_catalog"."default", - "data_source" varchar COLLATE "pg_catalog"."default", - "data_collection_date" timestamp(6) DEFAULT CURRENT_TIMESTAMP, - CONSTRAINT "lstm_anomaly_results_pkey" PRIMARY KEY ("result_id") -); -ALTER TABLE IF EXISTS "augur_data"."lstm_anomaly_results" OWNER TO "augur"; -COMMENT ON COLUMN "augur_data"."lstm_anomaly_results"."metric_field" IS 'This is a listing of all of the endpoint fields included in the generation of the metric. Sometimes there is one, sometimes there is more than one. This will list them all. '; - -CREATE TABLE IF NOT EXISTS "augur_data"."message" ( - "msg_id" int8 NOT NULL DEFAULT nextval('"augur_data".message_msg_id_seq'::regclass), - "rgls_id" int8, - "msg_text" text COLLATE "pg_catalog"."default", - "msg_timestamp" timestamp(0), - "msg_sender_email" varchar(255) COLLATE "pg_catalog"."default", - "msg_header" varchar(4000) COLLATE "pg_catalog"."default", - "pltfrm_id" int8 NOT NULL, - "tool_source" varchar(255) COLLATE "pg_catalog"."default", - "tool_version" varchar(255) COLLATE "pg_catalog"."default", - "data_source" varchar(255) COLLATE "pg_catalog"."default", - "data_collection_date" timestamp(0), - "cntrb_id" int8, - CONSTRAINT "message_pkey" PRIMARY KEY ("msg_id"), - CONSTRAINT "REPOGROUPLISTER" UNIQUE ("msg_id", "rgls_id"), - CONSTRAINT "platformer" UNIQUE ("msg_id", "pltfrm_id") -); -ALTER TABLE IF EXISTS "augur_data"."message" OWNER TO "augur"; -CREATE UNIQUE INDEX "messagegrouper" ON "augur_data"."message" USING btree ( - "msg_id" "pg_catalog"."int8_ops" ASC NULLS LAST, - "rgls_id" "pg_catalog"."int8_ops" ASC NULLS LAST -); -CREATE INDEX "msg-cntrb-id-idx" ON "augur_data"."message" USING btree ( - "cntrb_id" "pg_catalog"."int8_ops" ASC NULLS LAST -); -CREATE INDEX "platformgrouper" ON "augur_data"."message" USING btree ( - "msg_id" "pg_catalog"."int8_ops" ASC NULLS LAST, - "pltfrm_id" "pg_catalog"."int8_ops" ASC NULLS LAST -); -COMMENT ON COLUMN "augur_data"."message"."cntrb_id" IS 'Not populated for mailing lists. Populated for GitHub issues. '; - -CREATE TABLE IF NOT EXISTS "augur_data"."message_analysis" ( - "msg_analysis_id" int8 NOT NULL DEFAULT nextval('"augur_data".message_analysis_msg_analysis_id_seq'::regclass), - "msg_id" int8, - "worker_run_id" int8, - "sentiment_score" float8, - "reconstruction_error" float8, - "novelty_flag" bool, - "feedback_flag" bool, - "tool_source" varchar COLLATE "pg_catalog"."default", - "tool_version" varchar COLLATE "pg_catalog"."default", - "data_source" varchar COLLATE "pg_catalog"."default", - "data_collection_date" timestamp(0) DEFAULT CURRENT_TIMESTAMP, - CONSTRAINT "message_analysis_pkey" PRIMARY KEY ("msg_analysis_id") -); -ALTER TABLE IF EXISTS "augur_data"."message_analysis" OWNER TO "augur"; -COMMENT ON COLUMN "augur_data"."message_analysis"."worker_run_id" IS 'This column is used to indicate analyses run by a worker during the same execution period, and is useful for grouping, and time series analysis. '; -COMMENT ON COLUMN "augur_data"."message_analysis"."sentiment_score" IS 'A sentiment analysis score. Zero is neutral, negative numbers are negative sentiment, and positive numbers are positive sentiment. '; -COMMENT ON COLUMN "augur_data"."message_analysis"."reconstruction_error" IS 'Each message is converted to a 250 dimensin doc2vec vector, so the reconstruction error is the difference between what the predicted vector and the actual vector.'; -COMMENT ON COLUMN "augur_data"."message_analysis"."novelty_flag" IS 'This is an analysis of the degree to which the message is novel when compared to other messages in a repository. For example when bots are producing numerous identical messages, the novelty score is low. It would also be a low novelty score when several people are making the same coment. '; -COMMENT ON COLUMN "augur_data"."message_analysis"."feedback_flag" IS 'This exists to provide the user with an opportunity provide feedback on the resulting the sentiment scores. '; - -CREATE TABLE IF NOT EXISTS "augur_data"."message_analysis_summary" ( - "msg_summary_id" int8 NOT NULL DEFAULT nextval('"augur_data".message_analysis_summary_msg_summary_id_seq'::regclass), - "repo_id" int8, - "worker_run_id" int8, - "positive_ratio" float8, - "negative_ratio" float8, - "novel_count" int8, - "period" timestamp(0), - "tool_source" varchar COLLATE "pg_catalog"."default", - "tool_version" varchar COLLATE "pg_catalog"."default", - "data_source" varchar COLLATE "pg_catalog"."default", - "data_collection_date" timestamp(0) DEFAULT CURRENT_TIMESTAMP, - CONSTRAINT "message_analysis_summary_pkey" PRIMARY KEY ("msg_summary_id") -); -ALTER TABLE IF EXISTS "augur_data"."message_analysis_summary" OWNER TO "augur"; -COMMENT ON COLUMN "augur_data"."message_analysis_summary"."worker_run_id" IS 'This value should reflect the worker_run_id for the messages summarized in the table. There is not a relation between these two tables for that purpose because its not *really*, relationaly a concept unless we create a third table for "worker_run_id", which we determined was unnecessarily complex. '; -COMMENT ON COLUMN "augur_data"."message_analysis_summary"."novel_count" IS 'The number of messages identified as novel during the analyzed period'; -COMMENT ON COLUMN "augur_data"."message_analysis_summary"."period" IS 'The whole timeline is divided into periods based on the definition of time period for analysis, which is user specified. Timestamp of the first period to look at, until the end of messages at the data of execution. '; -COMMENT ON TABLE "augur_data"."message_analysis_summary" IS 'In a relationally perfect world, we would have a table called “message_analysis_run” the incremented the “worker_run_id” for both message_analysis and message_analysis_summary. For now, we decided this was overkill. '; - -CREATE TABLE IF NOT EXISTS "augur_data"."message_sentiment" ( - "msg_analysis_id" int8 NOT NULL DEFAULT nextval('"augur_data".message_sentiment_msg_analysis_id_seq'::regclass), - "msg_id" int8, - "worker_run_id" int8, - "sentiment_score" float8, - "reconstruction_error" float8, - "novelty_flag" bool, - "feedback_flag" bool, - "tool_source" varchar COLLATE "pg_catalog"."default", - "tool_version" varchar COLLATE "pg_catalog"."default", - "data_source" varchar COLLATE "pg_catalog"."default", - "data_collection_date" timestamp(0) DEFAULT CURRENT_TIMESTAMP, - CONSTRAINT "message_sentiment_pkey" PRIMARY KEY ("msg_analysis_id") -); -ALTER TABLE IF EXISTS "augur_data"."message_sentiment" OWNER TO "augur"; -COMMENT ON COLUMN "augur_data"."message_sentiment"."worker_run_id" IS 'This column is used to indicate analyses run by a worker during the same execution period, and is useful for grouping, and time series analysis. '; -COMMENT ON COLUMN "augur_data"."message_sentiment"."sentiment_score" IS 'A sentiment analysis score. Zero is neutral, negative numbers are negative sentiment, and positive numbers are positive sentiment. '; -COMMENT ON COLUMN "augur_data"."message_sentiment"."reconstruction_error" IS 'Each message is converted to a 250 dimensin doc2vec vector, so the reconstruction error is the difference between what the predicted vector and the actual vector.'; -COMMENT ON COLUMN "augur_data"."message_sentiment"."novelty_flag" IS 'This is an analysis of the degree to which the message is novel when compared to other messages in a repository. For example when bots are producing numerous identical messages, the novelty score is low. It would also be a low novelty score when several people are making the same coment. '; -COMMENT ON COLUMN "augur_data"."message_sentiment"."feedback_flag" IS 'This exists to provide the user with an opportunity provide feedback on the resulting the sentiment scores. '; - -CREATE TABLE IF NOT EXISTS "augur_data"."message_sentiment_summary" ( - "msg_summary_id" int8 NOT NULL DEFAULT nextval('"augur_data".message_sentiment_summary_msg_summary_id_seq'::regclass), - "repo_id" int8, - "worker_run_id" int8, - "positive_ratio" float8, - "negative_ratio" float8, - "novel_count" int8, - "period" timestamp(0), - "tool_source" varchar COLLATE "pg_catalog"."default", - "tool_version" varchar COLLATE "pg_catalog"."default", - "data_source" varchar COLLATE "pg_catalog"."default", - "data_collection_date" timestamp(0) DEFAULT CURRENT_TIMESTAMP, - CONSTRAINT "message_sentiment_summary_pkey" PRIMARY KEY ("msg_summary_id") -); -ALTER TABLE IF EXISTS "augur_data"."message_sentiment_summary" OWNER TO "augur"; -COMMENT ON COLUMN "augur_data"."message_sentiment_summary"."worker_run_id" IS 'This value should reflect the worker_run_id for the messages summarized in the table. There is not a relation between these two tables for that purpose because its not *really*, relationaly a concept unless we create a third table for "worker_run_id", which we determined was unnecessarily complex. '; -COMMENT ON COLUMN "augur_data"."message_sentiment_summary"."novel_count" IS 'The number of messages identified as novel during the analyzed period'; -COMMENT ON COLUMN "augur_data"."message_sentiment_summary"."period" IS 'The whole timeline is divided into periods based on the definition of time period for analysis, which is user specified. Timestamp of the first period to look at, until the end of messages at the data of execution. '; -COMMENT ON TABLE "augur_data"."message_sentiment_summary" IS 'In a relationally perfect world, we would have a table called “message_sentiment_run” the incremented the “worker_run_id” for both message_sentiment and message_sentiment_summary. For now, we decided this was overkill. '; - -CREATE TABLE IF NOT EXISTS "augur_data"."platform" ( - "pltfrm_id" int8 NOT NULL DEFAULT nextval('"augur_data".platform_pltfrm_id_seq'::regclass), - "pltfrm_name" varchar(255) COLLATE "pg_catalog"."default", - "pltfrm_version" varchar(255) COLLATE "pg_catalog"."default", - "pltfrm_release_date" date, - "tool_source" varchar(255) COLLATE "pg_catalog"."default", - "tool_version" varchar(255) COLLATE "pg_catalog"."default", - "data_source" varchar(255) COLLATE "pg_catalog"."default", - "data_collection_date" timestamp(0), - CONSTRAINT "theplat" PRIMARY KEY ("pltfrm_id") -); -ALTER TABLE IF EXISTS "augur_data"."platform" OWNER TO "augur"; -CREATE UNIQUE INDEX "plat" ON "augur_data"."platform" USING btree ( - "pltfrm_id" "pg_catalog"."int8_ops" ASC NULLS LAST -); - -CREATE TABLE IF NOT EXISTS "augur_data"."pull_request_assignees" ( - "pr_assignee_map_id" int8 NOT NULL DEFAULT nextval('"augur_data".pull_request_assignees_pr_assignee_map_id_seq'::regclass), - "pull_request_id" int8, - "contrib_id" int8, - "tool_source" varchar(255) COLLATE "pg_catalog"."default", - "tool_version" varchar(255) COLLATE "pg_catalog"."default", - "data_source" varchar(255) COLLATE "pg_catalog"."default", - "data_collection_date" timestamp(0) DEFAULT CURRENT_TIMESTAMP, - CONSTRAINT "pull_request_assignees_pkey" PRIMARY KEY ("pr_assignee_map_id") -); -ALTER TABLE IF EXISTS "augur_data"."pull_request_assignees" OWNER TO "augur"; -CREATE INDEX "pr_meta_cntrb-idx" ON "augur_data"."pull_request_assignees" USING btree ( - "contrib_id" "pg_catalog"."int8_ops" ASC NULLS LAST -); - -CREATE TABLE IF NOT EXISTS "augur_data"."pull_request_commits" ( - "pr_cmt_id" int8 NOT NULL DEFAULT nextval('"augur_data".pull_request_commits_pr_cmt_id_seq'::regclass), - "pull_request_id" int8, - "pr_cmt_sha" varchar COLLATE "pg_catalog"."default", - "pr_cmt_node_id" varchar COLLATE "pg_catalog"."default", - "pr_cmt_message" varchar COLLATE "pg_catalog"."default", - "pr_cmt_comments_url" varbit, - "tool_source" varchar COLLATE "pg_catalog"."default", - "tool_version" varchar COLLATE "pg_catalog"."default", - "data_source" varchar COLLATE "pg_catalog"."default", - "data_collection_date" timestamp(0) DEFAULT CURRENT_TIMESTAMP, - CONSTRAINT "pull_request_commits_pkey" PRIMARY KEY ("pr_cmt_id") -); -ALTER TABLE IF EXISTS "augur_data"."pull_request_commits" OWNER TO "augur"; -COMMENT ON COLUMN "augur_data"."pull_request_commits"."pr_cmt_sha" IS 'This is the commit SHA for a pull request commit. If the PR is not to the master branch of the main repository (or, in rare cases, from it), then you will NOT find a corresponding commit SHA in the commit table. (see table comment for further explanation). '; -COMMENT ON TABLE "augur_data"."pull_request_commits" IS 'Pull request commits are an enumeration of each commit associated with a pull request. -Not all pull requests are from a branch or fork into master. -The commits table intends to count only commits that end up in the master branch (i.e., part of the deployed code base for a project). -Therefore, there will be commit “SHA”’s in this table that are no associated with a commit SHA in the commits table. -In cases where the PR is to the master branch of a project, you will find a match. In cases where the PR does not involve the master branch, you will not find a corresponding commit SHA in the commits table. This is expected. '; - -CREATE TABLE IF NOT EXISTS "augur_data"."pull_request_events" ( - "pr_event_id" int8 NOT NULL DEFAULT nextval('"augur_data".pull_request_events_pr_event_id_seq'::regclass), - "pull_request_id" int8 NOT NULL, - "cntrb_id" int8 NOT NULL, - "action" varchar(255) COLLATE "pg_catalog"."default" NOT NULL, - "action_commit_hash" varchar COLLATE "pg_catalog"."default", - "created_at" timestamp(0) NOT NULL DEFAULT CURRENT_TIMESTAMP, - "issue_event_src_id" int8, - "node_id" varchar COLLATE "pg_catalog"."default", - "node_url" varchar COLLATE "pg_catalog"."default", - "tool_source" varchar(255) COLLATE "pg_catalog"."default", - "tool_version" varchar(255) COLLATE "pg_catalog"."default", - "data_source" varchar(255) COLLATE "pg_catalog"."default", - "data_collection_date" timestamp(0) DEFAULT CURRENT_TIMESTAMP, - CONSTRAINT "pr_events_pkey" PRIMARY KEY ("pr_event_id") -); -ALTER TABLE IF EXISTS "augur_data"."pull_request_events" OWNER TO "augur"; -CREATE INDEX "pr_events_ibfk_1" ON "augur_data"."pull_request_events" USING btree ( - "pull_request_id" "pg_catalog"."int8_ops" ASC NULLS LAST -); -CREATE INDEX "pr_events_ibfk_2" ON "augur_data"."pull_request_events" USING btree ( - "cntrb_id" "pg_catalog"."int8_ops" ASC NULLS LAST -); -COMMENT ON COLUMN "augur_data"."pull_request_events"."issue_event_src_id" IS 'This ID comes from the source. In the case of GitHub, it is the id that is the first field returned from the issue events API'; -COMMENT ON COLUMN "augur_data"."pull_request_events"."node_id" IS 'This should be renamed to issue_event_src_node_id, as its the varchar identifier in GitHub and likely common in other sources as well. However, since it was created before we came to this naming standard and workers are built around it, we have it simply named as node_id. Anywhere you see node_id in the schema, it comes from GitHubs terminology.'; - -CREATE TABLE IF NOT EXISTS "augur_data"."pull_request_files" ( - "pull_request_id" int8, - "pr_file_id" int8 NOT NULL DEFAULT nextval('"augur_data".pull_request_files_pr_file_id_seq'::regclass), - "pr_file_additions" int8, - "pr_file_deletions" int8, - "pr_file_path" varchar COLLATE "pg_catalog"."default", - "tool_source" varchar COLLATE "pg_catalog"."default", - "tool_version" varchar COLLATE "pg_catalog"."default", - "data_source" varchar COLLATE "pg_catalog"."default", - "data_collection_date" timestamp(0) DEFAULT CURRENT_TIMESTAMP, - CONSTRAINT "pull_request_files_pkey" PRIMARY KEY ("pr_file_id") -); -ALTER TABLE IF EXISTS "augur_data"."pull_request_files" OWNER TO "augur"; -COMMENT ON TABLE "augur_data"."pull_request_files" IS 'Pull request commits are an enumeration of each commit associated with a pull request. -Not all pull requests are from a branch or fork into master. -The commits table intends to count only commits that end up in the master branch (i.e., part of the deployed code base for a project). -Therefore, there will be commit “SHA”’s in this table that are no associated with a commit SHA in the commits table. -In cases where the PR is to the master branch of a project, you will find a match. In cases where the PR does not involve the master branch, you will not find a corresponding commit SHA in the commits table. This is expected. '; - -CREATE TABLE IF NOT EXISTS "augur_data"."pull_request_labels" ( - "pr_label_id" int8 NOT NULL DEFAULT nextval('"augur_data".pull_request_labels_pr_label_id_seq'::regclass), - "pull_request_id" int8, - "pr_src_id" int8, - "pr_src_node_id" varchar COLLATE "pg_catalog"."default", - "pr_src_url" varchar COLLATE "pg_catalog"."default", - "pr_src_description" varchar COLLATE "pg_catalog"."default", - "pr_src_color" varchar COLLATE "pg_catalog"."default", - "pr_src_default_bool" bool, - "tool_source" varchar(255) COLLATE "pg_catalog"."default", - "tool_version" varchar(255) COLLATE "pg_catalog"."default", - "data_source" varchar(255) COLLATE "pg_catalog"."default", - "data_collection_date" timestamp(0) DEFAULT CURRENT_TIMESTAMP, - CONSTRAINT "pull_request_labels_pkey" PRIMARY KEY ("pr_label_id") -); -ALTER TABLE IF EXISTS "augur_data"."pull_request_labels" OWNER TO "augur"; - -CREATE TABLE IF NOT EXISTS "augur_data"."pull_request_message_ref" ( - "pr_msg_ref_id" int8 NOT NULL DEFAULT nextval('"augur_data".pull_request_message_ref_pr_msg_ref_id_seq'::regclass), - "pull_request_id" int8, - "msg_id" int8, - "pr_message_ref_src_comment_id" int8, - "pr_message_ref_src_node_id" varchar COLLATE "pg_catalog"."default", - "tool_source" varchar(255) COLLATE "pg_catalog"."default", - "tool_version" varchar(255) COLLATE "pg_catalog"."default", - "data_source" varchar(255) COLLATE "pg_catalog"."default", - "data_collection_date" timestamp(0) DEFAULT CURRENT_TIMESTAMP, - CONSTRAINT "pull_request_message_ref_pkey" PRIMARY KEY ("pr_msg_ref_id") -); -ALTER TABLE IF EXISTS "augur_data"."pull_request_message_ref" OWNER TO "augur"; - -CREATE TABLE IF NOT EXISTS "augur_data"."pull_request_meta" ( - "pr_repo_meta_id" int8 NOT NULL DEFAULT nextval('"augur_data".pull_request_meta_pr_repo_meta_id_seq'::regclass), - "pull_request_id" int8, - "pr_head_or_base" varchar COLLATE "pg_catalog"."default", - "pr_src_meta_label" varchar COLLATE "pg_catalog"."default", - "pr_src_meta_ref" varchar COLLATE "pg_catalog"."default", - "pr_sha" varchar COLLATE "pg_catalog"."default", - "cntrb_id" int8, - "tool_source" varchar(255) COLLATE "pg_catalog"."default", - "tool_version" varchar(255) COLLATE "pg_catalog"."default", - "data_source" varchar(255) COLLATE "pg_catalog"."default", - "data_collection_date" timestamp(0) DEFAULT CURRENT_TIMESTAMP, - CONSTRAINT "pull_request_meta_pkey" PRIMARY KEY ("pr_repo_meta_id") -); -ALTER TABLE IF EXISTS "augur_data"."pull_request_meta" OWNER TO "augur"; -CREATE INDEX "pr_meta-cntrbid-idx" ON "augur_data"."pull_request_meta" USING btree ( - "cntrb_id" "pg_catalog"."int8_ops" ASC NULLS LAST -); -COMMENT ON COLUMN "augur_data"."pull_request_meta"."pr_head_or_base" IS 'Each pull request should have one and only one head record; and one and only one base record. '; -COMMENT ON COLUMN "augur_data"."pull_request_meta"."pr_src_meta_label" IS 'This is a representation of the repo:branch information in the pull request. Head is issueing the pull request and base is taking the pull request. For example: (We do not store all of this) - - "head": { - "label": "chaoss:pull-request-worker", - "ref": "pull-request-worker", - "sha": "6b380c3d6d625616f79d702612ebab6d204614f2", - "user": { - "login": "chaoss", - "id": 29740296, - "node_id": "MDEyOk9yZ2FuaXphdGlvbjI5NzQwMjk2", - "avatar_url": "https://avatars2.githubusercontent.com/u/29740296?v=4", - "gravatar_id": "", - "url": "https://api.github.com/users/chaoss", - "html_url": "https://github.com/chaoss", - "followers_url": "https://api.github.com/users/chaoss/followers", - "following_url": "https://api.github.com/users/chaoss/following{/other_user}", - "gists_url": "https://api.github.com/users/chaoss/gists{/gist_id}", - "starred_url": "https://api.github.com/users/chaoss/starred{/owner}{/repo}", - "subscriptions_url": "https://api.github.com/users/chaoss/subscriptions", - "organizations_url": "https://api.github.com/users/chaoss/orgs", - "repos_url": "https://api.github.com/users/chaoss/repos", - "events_url": "https://api.github.com/users/chaoss/events{/privacy}", - "received_events_url": "https://api.github.com/users/chaoss/received_events", - "type": "Organization", - "site_admin": false - }, - "repo": { - "id": 78134122, - "node_id": "MDEwOlJlcG9zaXRvcnk3ODEzNDEyMg==", - "name": "augur", - "full_name": "chaoss/augur", - "private": false, - "owner": { - "login": "chaoss", - "id": 29740296, - "node_id": "MDEyOk9yZ2FuaXphdGlvbjI5NzQwMjk2", - "avatar_url": "https://avatars2.githubusercontent.com/u/29740296?v=4", - "gravatar_id": "", - "url": "https://api.github.com/users/chaoss", - "html_url": "https://github.com/chaoss", - "followers_url": "https://api.github.com/users/chaoss/followers", - "following_url": "https://api.github.com/users/chaoss/following{/other_user}", - "gists_url": "https://api.github.com/users/chaoss/gists{/gist_id}", - "starred_url": "https://api.github.com/users/chaoss/starred{/owner}{/repo}", - "subscriptions_url": "https://api.github.com/users/chaoss/subscriptions", - "organizations_url": "https://api.github.com/users/chaoss/orgs", - "repos_url": "https://api.github.com/users/chaoss/repos", - "events_url": "https://api.github.com/users/chaoss/events{/privacy}", - "received_events_url": "https://api.github.com/users/chaoss/received_events", - "type": "Organization", - "site_admin": false - }, - "html_url": "https://github.com/chaoss/augur", - "description": "Python library and web service for Open Source Software Health and Sustainability metrics & data collection.", - "fork": false, - "url": "https://api.github.com/repos/chaoss/augur", - "forks_url": "https://api.github.com/repos/chaoss/augur/forks", - "keys_url": "https://api.github.com/repos/chaoss/augur/keys{/key_id}", - "collaborators_url": "https://api.github.com/repos/chaoss/augur/collaborators{/collaborator}", - "teams_url": "https://api.github.com/repos/chaoss/augur/teams", - "hooks_url": "https://api.github.com/repos/chaoss/augur/hooks", - "issue_events_url": "https://api.github.com/repos/chaoss/augur/issues/events{/number}", - "events_url": "https://api.github.com/repos/chaoss/augur/events", - "assignees_url": "https://api.github.com/repos/chaoss/augur/assignees{/user}", - "branches_url": "https://api.github.com/repos/chaoss/augur/branches{/branch}", - "tags_url": "https://api.github.com/repos/chaoss/augur/tags", - "blobs_url": "https://api.github.com/repos/chaoss/augur/git/blobs{/sha}", - "git_tags_url": "https://api.github.com/repos/chaoss/augur/git/tags{/sha}", - "git_refs_url": "https://api.github.com/repos/chaoss/augur/git/refs{/sha}", - "trees_url": "https://api.github.com/repos/chaoss/augur/git/trees{/sha}", - "statuses_url": "https://api.github.com/repos/chaoss/augur/statuses/{sha}", - "languages_url": "https://api.github.com/repos/chaoss/augur/languages", - "stargazers_url": "https://api.github.com/repos/chaoss/augur/stargazers", - "contributors_url": "https://api.github.com/repos/chaoss/augur/contributors", - "subscribers_url": "https://api.github.com/repos/chaoss/augur/subscribers", - "subscription_url": "https://api.github.com/repos/chaoss/augur/subscription", - "commits_url": "https://api.github.com/repos/chaoss/augur/commits{/sha}", - "git_commits_url": "https://api.github.com/repos/chaoss/augur/git/commits{/sha}", - "comments_url": "https://api.github.com/repos/chaoss/augur/comments{/number}", - "issue_comment_url": "https://api.github.com/repos/chaoss/augur/issues/comments{/number}", - "contents_url": "https://api.github.com/repos/chaoss/augur/contents/{+path}", - "compare_url": "https://api.github.com/repos/chaoss/augur/compare/{base}...{head}", - "merges_url": "https://api.github.com/repos/chaoss/augur/merges", - "archive_url": "https://api.github.com/repos/chaoss/augur/{archive_format}{/ref}", - "downloads_url": "https://api.github.com/repos/chaoss/augur/downloads", - "issues_url": "https://api.github.com/repos/chaoss/augur/issues{/number}", - "pulls_url": "https://api.github.com/repos/chaoss/augur/pulls{/number}", - "milestones_url": "https://api.github.com/repos/chaoss/augur/milestones{/number}", - "notifications_url": "https://api.github.com/repos/chaoss/augur/notifications{?since,all,participating}", - "labels_url": "https://api.github.com/repos/chaoss/augur/labels{/name}", - "releases_url": "https://api.github.com/repos/chaoss/augur/releases{/id}", - "deployments_url": "https://api.github.com/repos/chaoss/augur/deployments", - "created_at": "2017-01-05T17:34:54Z", - "updated_at": "2019-11-15T00:56:12Z", - "pushed_at": "2019-12-02T06:27:26Z", - "git_url": "git://github.com/chaoss/augur.git", - "ssh_url": "git@github.com:chaoss/augur.git", - "clone_url": "https://github.com/chaoss/augur.git", - "svn_url": "https://github.com/chaoss/augur", - "homepage": "http://augur.osshealth.io/", - "size": 82004, - "stargazers_count": 153, - "watchers_count": 153, - "language": "Python", - "has_issues": true, - "has_projects": false, - "has_downloads": true, - "has_wiki": false, - "has_pages": true, - "forks_count": 205, - "mirror_url": null, - "archived": false, - "disabled": false, - "open_issues_count": 14, - "license": { - "key": "mit", - "name": "MIT License", - "spdx_id": "MIT", - "url": "https://api.github.com/licenses/mit", - "node_id": "MDc6TGljZW5zZTEz" - }, - "forks": 205, - "open_issues": 14, - "watchers": 153, - "default_branch": "master" - } - }, - "base": { - "label": "chaoss:dev", - "ref": "dev", - "sha": "bfd2d34b51659613dd842cf83c3873f7699c2a0e", - "user": { - "login": "chaoss", - "id": 29740296, - "node_id": "MDEyOk9yZ2FuaXphdGlvbjI5NzQwMjk2", - "avatar_url": "https://avatars2.githubusercontent.com/u/29740296?v=4", - "gravatar_id": "", - "url": "https://api.github.com/users/chaoss", - "html_url": "https://github.com/chaoss", - "followers_url": "https://api.github.com/users/chaoss/followers", - "following_url": "https://api.github.com/users/chaoss/following{/other_user}", - "gists_url": "https://api.github.com/users/chaoss/gists{/gist_id}", - "starred_url": "https://api.github.com/users/chaoss/starred{/owner}{/repo}", - "subscriptions_url": "https://api.github.com/users/chaoss/subscriptions", - "organizations_url": "https://api.github.com/users/chaoss/orgs", - "repos_url": "https://api.github.com/users/chaoss/repos", - "events_url": "https://api.github.com/users/chaoss/events{/privacy}", - "received_events_url": "https://api.github.com/users/chaoss/received_events", - "type": "Organization", - "site_admin": false - }, - "repo": { - "id": 78134122, - "node_id": "MDEwOlJlcG9zaXRvcnk3ODEzNDEyMg==", - "name": "augur", - "full_name": "chaoss/augur", - "private": false, - "owner": { - "login": "chaoss", - "id": 29740296, - "node_id": "MDEyOk9yZ2FuaXphdGlvbjI5NzQwMjk2", - "avatar_url": "https://avatars2.githubusercontent.com/u/29740296?v=4", - "gravatar_id": "", - "url": "https://api.github.com/users/chaoss", - "html_url": "https://github.com/chaoss", - "followers_url": "https://api.github.com/users/chaoss/followers", - "following_url": "https://api.github.com/users/chaoss/following{/other_user}", - "gists_url": "https://api.github.com/users/chaoss/gists{/gist_id}", - "starred_url": "https://api.github.com/users/chaoss/starred{/owner}{/repo}", - "subscriptions_url": "https://api.github.com/users/chaoss/subscriptions", - "organizations_url": "https://api.github.com/users/chaoss/orgs", - "repos_url": "https://api.github.com/users/chaoss/repos", - "events_url": "https://api.github.com/users/chaoss/events{/privacy}", - "received_events_url": "https://api.github.com/users/chaoss/received_events", - "type": "Organization", - "site_admin": false - }, -'; -COMMENT ON TABLE "augur_data"."pull_request_meta" IS 'Pull requests contain referencing metadata. There are a few columns that are discrete. There are also head and base designations for the repo on each side of the pull request. Similar functions exist in GitLab, though the language here is based on GitHub. The JSON Being adapted to as of the development of this schema is here: "base": { "label": "chaoss:dev", "ref": "dev", "sha": "dc6c6f3947f7dc84ecba3d8bda641ef786e7027d", "user": { "login": "chaoss", "id": 29740296, "node_id": "MDEyOk9yZ2FuaXphdGlvbjI5NzQwMjk2", "avatar_url": "https://avatars2.githubusercontent.com/u/29740296?v=4", "gravatar_id": "", "url": "https://api.github.com/users/chaoss", "html_url": "https://github.com/chaoss", "followers_url": "https://api.github.com/users/chaoss/followers", "following_url": "https://api.github.com/users/chaoss/following{/other_user}", "gists_url": "https://api.github.com/users/chaoss/gists{/gist_id}", "starred_url": "https://api.github.com/users/chaoss/starred{/owner}{/repo}", "subscriptions_url": "https://api.github.com/users/chaoss/subscriptions", "organizations_url": "https://api.github.com/users/chaoss/orgs", "repos_url": "https://api.github.com/users/chaoss/repos", "events_url": "https://api.github.com/users/chaoss/events{/privacy}", "received_events_url": "https://api.github.com/users/chaoss/received_events", "type": "Organization", "site_admin": false }, "repo": { "id": 78134122, "node_id": "MDEwOlJlcG9zaXRvcnk3ODEzNDEyMg==", "name": "augur", "full_name": "chaoss/augur", "private": false, "owner": { "login": "chaoss", "id": 29740296, "node_id": "MDEyOk9yZ2FuaXphdGlvbjI5NzQwMjk2", "avatar_url": "https://avatars2.githubusercontent.com/u/29740296?v=4", "gravatar_id": "", "url": "https://api.github.com/users/chaoss", "html_url": "https://github.com/chaoss", "followers_url": "https://api.github.com/users/chaoss/followers", "following_url": "https://api.github.com/users/chaoss/following{/other_user}", "gists_url": "https://api.github.com/users/chaoss/gists{/gist_id}", "starred_url": "https://api.github.com/users/chaoss/starred{/owner}{/repo}", "subscriptions_url": "https://api.github.com/users/chaoss/subscriptions", "organizations_url": "https://api.github.com/users/chaoss/orgs", "repos_url": "https://api.github.com/users/chaoss/repos", "events_url": "https://api.github.com/users/chaoss/events{/privacy}", "received_events_url": "https://api.github.com/users/chaoss/received_events", "type": "Organization", "site_admin": false }, '; - -CREATE TABLE IF NOT EXISTS "augur_data"."pull_request_repo" ( - "pr_repo_id" int8 NOT NULL DEFAULT nextval('"augur_data".pull_request_repo_pr_repo_id_seq'::regclass), - "pr_repo_meta_id" int8, - "pr_repo_head_or_base" varchar COLLATE "pg_catalog"."default", - "pr_src_repo_id" int8, - "pr_src_node_id" varchar COLLATE "pg_catalog"."default", - "pr_repo_name" varchar COLLATE "pg_catalog"."default", - "pr_repo_full_name" varchar COLLATE "pg_catalog"."default", - "pr_repo_private_bool" bool, - "pr_cntrb_id" int8, - "tool_source" varchar(255) COLLATE "pg_catalog"."default", - "tool_version" varchar(255) COLLATE "pg_catalog"."default", - "data_source" varchar(255) COLLATE "pg_catalog"."default", - "data_collection_date" timestamp(0) DEFAULT CURRENT_TIMESTAMP, - CONSTRAINT "pull_request_repo_pkey" PRIMARY KEY ("pr_repo_id") -); -ALTER TABLE IF EXISTS "augur_data"."pull_request_repo" OWNER TO "augur"; -CREATE INDEX "pr-cntrb-idx-repo" ON "augur_data"."pull_request_repo" USING btree ( - "pr_cntrb_id" "pg_catalog"."int8_ops" ASC NULLS LAST -); -COMMENT ON COLUMN "augur_data"."pull_request_repo"."pr_repo_head_or_base" IS 'For ease of validation checking, we should determine if the repository referenced is the head or base of the pull request. Each pull request should have one and only one of these, which is not enforcable easily in the database.'; -COMMENT ON TABLE "augur_data"."pull_request_repo" IS 'This table is for storing information about forks that exist as part of a pull request. Generally we do not want to track these like ordinary repositories. '; - -CREATE TABLE IF NOT EXISTS "augur_data"."pull_request_reviewers" ( - "pr_reviewer_map_id" int8 NOT NULL DEFAULT nextval('"augur_data".pull_request_reviewers_pr_reviewer_map_id_seq'::regclass), - "pull_request_id" int8, - "cntrb_id" int8, - "tool_source" varchar(255) COLLATE "pg_catalog"."default", - "tool_version" varchar(255) COLLATE "pg_catalog"."default", - "data_source" varchar(255) COLLATE "pg_catalog"."default", - "data_collection_date" timestamp(0) DEFAULT CURRENT_TIMESTAMP, - CONSTRAINT "pull_request_reviewers_pkey" PRIMARY KEY ("pr_reviewer_map_id") -); -ALTER TABLE IF EXISTS "augur_data"."pull_request_reviewers" OWNER TO "augur"; -CREATE INDEX "pr-reviewers-cntrb-idx1" ON "augur_data"."pull_request_reviewers" USING btree ( - "cntrb_id" "pg_catalog"."int8_ops" ASC NULLS LAST -); - -CREATE TABLE IF NOT EXISTS "augur_data"."pull_request_teams" ( - "pr_team_id" int8 NOT NULL DEFAULT nextval('"augur_data".pull_request_teams_pr_team_id_seq'::regclass), - "pull_request_id" int8, - "pr_src_team_id" int8, - "pr_src_team_node" varchar COLLATE "pg_catalog"."default", - "pr_src_team_url" varchar COLLATE "pg_catalog"."default", - "pr_team_name" varchar COLLATE "pg_catalog"."default", - "pr_team_slug" varchar COLLATE "pg_catalog"."default", - "pr_team_description" varchar COLLATE "pg_catalog"."default", - "pr_team_privacy" varchar COLLATE "pg_catalog"."default", - "pr_team_permission" varchar COLLATE "pg_catalog"."default", - "pr_team_src_members_url" varchar COLLATE "pg_catalog"."default", - "pr_team_src_repositories_url" varchar COLLATE "pg_catalog"."default", - "pr_team_parent_id" int8, - "tool_source" varchar(255) COLLATE "pg_catalog"."default", - "tool_version" varchar(255) COLLATE "pg_catalog"."default", - "data_source" varchar(255) COLLATE "pg_catalog"."default", - "data_collection_date" timestamp(0) DEFAULT CURRENT_TIMESTAMP, - CONSTRAINT "pull_request_teams_pkey" PRIMARY KEY ("pr_team_id") -); -ALTER TABLE IF EXISTS "augur_data"."pull_request_teams" OWNER TO "augur"; - -CREATE TABLE IF NOT EXISTS "augur_data"."pull_requests" ( - "pull_request_id" int8 NOT NULL DEFAULT nextval('"augur_data".pull_requests_pull_request_id_seq'::regclass), - "pr_url" varchar COLLATE "pg_catalog"."default", - "pr_src_id" int8, - "pr_src_node_id" varchar COLLATE "pg_catalog"."default", - "pr_html_url" varchar COLLATE "pg_catalog"."default", - "pr_diff_url" varchar COLLATE "pg_catalog"."default", - "pr_patch_url" varchar COLLATE "pg_catalog"."default", - "pr_issue_url" varchar COLLATE "pg_catalog"."default", - "pr_augur_issue_id" int8, - "pr_src_number" int8, - "pr_src_state" varchar COLLATE "pg_catalog"."default", - "pr_src_locked" bool, - "pr_src_title" varchar COLLATE "pg_catalog"."default", - "pr_augur_contributor_id" int8, - "pr_body" text COLLATE "pg_catalog"."default", - "pr_created_at" timestamp(0), - "pr_updated_at" timestamp(0), - "pr_closed_at" timestamp(0), - "pr_merged_at" timestamp(0), - "pr_merge_commit_sha" varchar COLLATE "pg_catalog"."default", - "pr_teams" int8, - "pr_milestone" varchar COLLATE "pg_catalog"."default", - "pr_commits_url" varchar COLLATE "pg_catalog"."default", - "pr_review_comments_url" varchar COLLATE "pg_catalog"."default", - "pr_review_comment_url" varchar COLLATE "pg_catalog"."default", - "pr_comments_url" varchar COLLATE "pg_catalog"."default", - "pr_statuses_url" varchar COLLATE "pg_catalog"."default", - "pr_meta_head_id" int8, - "pr_meta_base_id" int8, - "pr_src_issue_url" varchar COLLATE "pg_catalog"."default", - "pr_src_comments_url" varchar COLLATE "pg_catalog"."default", - "pr_src_review_comments_url" varchar COLLATE "pg_catalog"."default", - "pr_src_commits_url" varchar COLLATE "pg_catalog"."default", - "pr_src_statuses_url" varchar COLLATE "pg_catalog"."default", - "pr_src_author_association" varchar COLLATE "pg_catalog"."default", - "tool_source" varchar(255) COLLATE "pg_catalog"."default", - "tool_version" varchar(255) COLLATE "pg_catalog"."default", - "data_source" varchar(255) COLLATE "pg_catalog"."default", - "data_collection_date" timestamp(0) DEFAULT CURRENT_TIMESTAMP, - "repo_id" int8, - CONSTRAINT "pull_requests_pkey" PRIMARY KEY ("pull_request_id") -); -ALTER TABLE IF EXISTS "augur_data"."pull_requests" OWNER TO "augur"; -CREATE INDEX "id_node" ON "augur_data"."pull_requests" USING btree ( - "pr_src_id" "pg_catalog"."int8_ops" DESC NULLS FIRST, - "pr_src_node_id" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" DESC NULLS LAST -); -COMMENT ON COLUMN "augur_data"."pull_requests"."pr_src_id" IS 'The pr_src_id is unique across all of github.'; -COMMENT ON COLUMN "augur_data"."pull_requests"."pr_augur_issue_id" IS 'This is to link to the augur stored related issue'; -COMMENT ON COLUMN "augur_data"."pull_requests"."pr_src_number" IS 'The pr_src_number is unique within a repository.'; -COMMENT ON COLUMN "augur_data"."pull_requests"."pr_augur_contributor_id" IS 'This is to link to the augur contributor record. '; -COMMENT ON COLUMN "augur_data"."pull_requests"."pr_teams" IS 'One to many with pull request teams. '; -COMMENT ON COLUMN "augur_data"."pull_requests"."pr_review_comment_url" IS 'This is a field with limited utility. It does expose how to access a specific comment if needed with parameters. If the source changes URL structure, it may be useful'; -COMMENT ON COLUMN "augur_data"."pull_requests"."pr_meta_head_id" IS 'The metadata for the head repo that links to the pull_request_meta table. '; -COMMENT ON COLUMN "augur_data"."pull_requests"."pr_meta_base_id" IS 'The metadata for the base repo that links to the pull_request_meta table. '; - -CREATE TABLE IF NOT EXISTS "augur_data"."releases" ( - "release_id" char(64) COLLATE "pg_catalog"."default" NOT NULL DEFAULT nextval('"augur_data".releases_release_id_seq'::regclass), - "repo_id" int8 NOT NULL, - "release_name" varchar(255) COLLATE "pg_catalog"."default", - "release_description" varchar COLLATE "pg_catalog"."default", - "release_author" varchar(255) COLLATE "pg_catalog"."default", - "release_created_at" timestamp(6), - "release_published_at" timestamp(6), - "release_updated_at" timestamp(6), - "release_is_draft" bool, - "release_is_prerelease" bool, - "release_tag_name" varchar(255) COLLATE "pg_catalog"."default", - "release_url" varchar(255) COLLATE "pg_catalog"."default", - "tool_source" varchar(255) COLLATE "pg_catalog"."default", - "tool_version" varchar(255) COLLATE "pg_catalog"."default", - "data_source" varchar(255) COLLATE "pg_catalog"."default", - "data_collection_date" timestamp(6) DEFAULT CURRENT_TIMESTAMP, - "tag_only" bool, - CONSTRAINT "releases_pkey" PRIMARY KEY ("release_id") -); -ALTER TABLE IF EXISTS "augur_data"."releases" OWNER TO "augur"; - -CREATE TABLE IF NOT EXISTS "augur_data"."repo" ( - "repo_id" int8 NOT NULL DEFAULT nextval('"augur_data".repo_repo_id_seq'::regclass), - "repo_group_id" int8 NOT NULL, - "repo_git" varchar COLLATE "pg_catalog"."default" NOT NULL, - "repo_path" varchar(256) COLLATE "pg_catalog"."default" DEFAULT 'NULL'::character varying, - "repo_name" varchar COLLATE "pg_catalog"."default" DEFAULT 'NULL'::character varying, - "repo_added" timestamp(0) NOT NULL DEFAULT CURRENT_TIMESTAMP, - "repo_status" varchar(32) COLLATE "pg_catalog"."default" NOT NULL DEFAULT 'New'::character varying, - "repo_type" varchar COLLATE "pg_catalog"."default" DEFAULT ''::character varying, - "url" varchar(255) COLLATE "pg_catalog"."default", - "owner_id" int4, - "description" varchar COLLATE "pg_catalog"."default", - "primary_language" varchar(255) COLLATE "pg_catalog"."default", - "created_at" varchar(255) COLLATE "pg_catalog"."default", - "forked_from" varchar COLLATE "pg_catalog"."default", - "updated_at" timestamp(0), - "tool_source" varchar(255) COLLATE "pg_catalog"."default", - "tool_version" varchar(255) COLLATE "pg_catalog"."default", - "data_source" varchar(255) COLLATE "pg_catalog"."default", - "data_collection_date" timestamp(0), - "repo_archived" int4, - "repo_archived_date_collected" timestamptz(0), - CONSTRAINT "repounique" PRIMARY KEY ("repo_id") -); -ALTER TABLE IF EXISTS "augur_data"."repo" OWNER TO "augur"; -CREATE INDEX "forked" ON "augur_data"."repo" USING btree ( - "forked_from" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST -); -CREATE INDEX "repogitindexrep" ON "augur_data"."repo" USING btree ( - "repo_git" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST -); -CREATE INDEX "reponameindex" ON "augur_data"."repo" USING hash ( - "repo_name" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" -); -CREATE INDEX "reponameindexbtree" ON "augur_data"."repo" USING btree ( - "repo_name" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST -); -CREATE INDEX "rggrouponrepoindex" ON "augur_data"."repo" USING btree ( - "repo_group_id" "pg_catalog"."int8_ops" ASC NULLS LAST -); -CREATE UNIQUE INDEX "therepo" ON "augur_data"."repo" USING btree ( - "repo_id" "pg_catalog"."int8_ops" ASC NULLS LAST -); -COMMENT ON COLUMN "augur_data"."repo"."repo_type" IS 'This field is intended to indicate if the repository is the "main instance" of a repository in cases where implementations choose to add the same repository to more than one repository group. In cases where the repository group is of rg_type Github Organization then this repo_type should be "primary". In other cases the repo_type should probably be "user created". We made this a varchar in order to hold open the possibility that there are additional repo_types we have not thought about. '; -COMMENT ON TABLE "augur_data"."repo" IS 'This table is a combination of the columns in Facade’s repo table and GHTorrent’s projects table. '; - -CREATE TABLE IF NOT EXISTS "augur_data"."repo_badging" ( - "badge_collection_id" int8 NOT NULL DEFAULT nextval('"augur_data".repo_badging_badge_collection_id_seq'::regclass), - "repo_id" int8, - "created_at" timestamp(0) DEFAULT CURRENT_TIMESTAMP, - "tool_source" varchar(255) COLLATE "pg_catalog"."default", - "tool_version" varchar(255) COLLATE "pg_catalog"."default", - "data_source" varchar(255) COLLATE "pg_catalog"."default", - "data_collection_date" timestamp(0) DEFAULT CURRENT_TIMESTAMP, - "data" jsonb, - CONSTRAINT "repo_badging_pkey" PRIMARY KEY ("badge_collection_id") -); -ALTER TABLE IF EXISTS "augur_data"."repo_badging" OWNER TO "augur"; -COMMENT ON TABLE "augur_data"."repo_badging" IS 'This will be collected from the LF’s Badging API -https://bestpractices.coreinfrastructure.org/projects.json?pq=https%3A%2F%2Fgithub.com%2Fchaoss%2Faugur -'; - -CREATE TABLE IF NOT EXISTS "augur_data"."repo_cluster_messages" ( - "msg_cluster_id" int8 NOT NULL DEFAULT nextval('"augur_data".repo_cluster_messages_msg_cluster_id_seq'::regclass), - "repo_id" int8, - "cluster_content" int4, - "cluster_mechanism" int4, - "tool_source" varchar COLLATE "pg_catalog"."default", - "tool_version" varchar COLLATE "pg_catalog"."default", - "data_source" varchar COLLATE "pg_catalog"."default", - "data_collection_date" timestamp(0) DEFAULT CURRENT_TIMESTAMP, - CONSTRAINT "repo_cluster_messages_pkey" PRIMARY KEY ("msg_cluster_id") -); -ALTER TABLE IF EXISTS "augur_data"."repo_cluster_messages" OWNER TO "augur"; - -CREATE TABLE IF NOT EXISTS "augur_data"."repo_group_insights" ( - "rgi_id" int8 NOT NULL DEFAULT nextval('"augur_data".repo_group_insights_rgi_id_seq'::regclass), - "repo_group_id" int8, - "rgi_metric" varchar COLLATE "pg_catalog"."default", - "rgi_value" varchar COLLATE "pg_catalog"."default", - "cms_id" int8, - "rgi_fresh" bool, - "tool_source" varchar COLLATE "pg_catalog"."default", - "tool_version" varchar COLLATE "pg_catalog"."default", - "data_source" varchar COLLATE "pg_catalog"."default", - "data_collection_date" timestamp(0) DEFAULT CURRENT_TIMESTAMP, - CONSTRAINT "repo_group_insights_pkey" PRIMARY KEY ("rgi_id") -); -ALTER TABLE IF EXISTS "augur_data"."repo_group_insights" OWNER TO "augur"; -COMMENT ON COLUMN "augur_data"."repo_group_insights"."rgi_fresh" IS 'false if the date is before the statistic that triggered the insight, true if after. This allows us to automatically display only "fresh insights" and avoid displaying "stale insights". The insight worker will populate this table. '; -COMMENT ON TABLE "augur_data"."repo_group_insights" IS 'This table is output from an analytical worker inside of Augur. It runs through the different metrics on a REPOSITORY_GROUP and identifies the five to ten most “interesting” metrics as defined by some kind of delta or other factor. The algorithm is going to evolve. - -Worker Design Notes: The idea is that the "insight worker" will scan through a bunch of active metrics or "synthetic metrics" to list the most important insights. '; - -CREATE TABLE IF NOT EXISTS "augur_data"."repo_groups" ( - "repo_group_id" int8 NOT NULL DEFAULT nextval('"augur_data".repo_groups_repo_group_id_seq'::regclass), - "rg_name" varchar COLLATE "pg_catalog"."default" NOT NULL, - "rg_description" varchar COLLATE "pg_catalog"."default" DEFAULT 'NULL'::character varying, - "rg_website" varchar(128) COLLATE "pg_catalog"."default" DEFAULT 'NULL'::character varying, - "rg_recache" int2 DEFAULT 1, - "rg_last_modified" timestamp(0) NOT NULL DEFAULT CURRENT_TIMESTAMP, - "rg_type" varchar COLLATE "pg_catalog"."default", - "tool_source" varchar(255) COLLATE "pg_catalog"."default", - "tool_version" varchar(255) COLLATE "pg_catalog"."default", - "data_source" varchar(255) COLLATE "pg_catalog"."default", - "data_collection_date" timestamp(0), - CONSTRAINT "rgid" PRIMARY KEY ("repo_group_id") -); -ALTER TABLE IF EXISTS "augur_data"."repo_groups" OWNER TO "augur"; -CREATE UNIQUE INDEX "rgidm" ON "augur_data"."repo_groups" USING btree ( - "repo_group_id" "pg_catalog"."int8_ops" ASC NULLS LAST -); -CREATE INDEX "rgnameindex" ON "augur_data"."repo_groups" USING btree ( - "rg_name" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST -); -COMMENT ON TABLE "augur_data"."repo_groups" IS 'rg_type is intended to be either a GitHub Organization or a User Created Repo Group. '; - -CREATE TABLE IF NOT EXISTS "augur_data"."repo_groups_list_serve" ( - "rgls_id" int8 NOT NULL DEFAULT nextval('"augur_data".repo_groups_list_serve_rgls_id_seq'::regclass), - "repo_group_id" int8 NOT NULL, - "rgls_name" varchar(255) COLLATE "pg_catalog"."default", - "rgls_description" varchar(3000) COLLATE "pg_catalog"."default", - "rgls_sponsor" varchar(255) COLLATE "pg_catalog"."default", - "rgls_email" varchar(255) COLLATE "pg_catalog"."default", - "tool_source" varchar(255) COLLATE "pg_catalog"."default", - "tool_version" varchar(255) COLLATE "pg_catalog"."default", - "data_source" varchar(255) COLLATE "pg_catalog"."default", - "data_collection_date" timestamp(0), - CONSTRAINT "repo_groups_list_serve_pkey" PRIMARY KEY ("rgls_id"), - CONSTRAINT "rglistserve" UNIQUE ("rgls_id", "repo_group_id") -); -ALTER TABLE IF EXISTS "augur_data"."repo_groups_list_serve" OWNER TO "augur"; -CREATE UNIQUE INDEX "lister" ON "augur_data"."repo_groups_list_serve" USING btree ( - "rgls_id" "pg_catalog"."int8_ops" ASC NULLS LAST, - "repo_group_id" "pg_catalog"."int8_ops" ASC NULLS LAST -); - -CREATE TABLE IF NOT EXISTS "augur_data"."repo_info" ( - "repo_info_id" int8 NOT NULL DEFAULT nextval('"augur_data".repo_info_repo_info_id_seq'::regclass), - "repo_id" int8 NOT NULL, - "last_updated" timestamp(0) DEFAULT NULL::timestamp without time zone, - "issues_enabled" varchar(255) COLLATE "pg_catalog"."default" DEFAULT NULL::character varying, - "open_issues" int4, - "pull_requests_enabled" varchar(255) COLLATE "pg_catalog"."default" DEFAULT NULL::character varying, - "wiki_enabled" varchar(255) COLLATE "pg_catalog"."default" DEFAULT NULL::character varying, - "pages_enabled" varchar(255) COLLATE "pg_catalog"."default" DEFAULT NULL::character varying, - "fork_count" int4, - "default_branch" varchar(255) COLLATE "pg_catalog"."default" DEFAULT NULL::character varying, - "watchers_count" int4, - "UUID" int4, - "license" varchar(255) COLLATE "pg_catalog"."default" DEFAULT NULL::character varying, - "stars_count" int4, - "committers_count" int4, - "issue_contributors_count" varchar(255) COLLATE "pg_catalog"."default", - "changelog_file" varchar(255) COLLATE "pg_catalog"."default" DEFAULT NULL::character varying, - "contributing_file" varchar(255) COLLATE "pg_catalog"."default" DEFAULT NULL::character varying, - "license_file" varchar(255) COLLATE "pg_catalog"."default" DEFAULT NULL::character varying, - "code_of_conduct_file" varchar(255) COLLATE "pg_catalog"."default" DEFAULT NULL::character varying, - "security_issue_file" varchar(255) COLLATE "pg_catalog"."default" DEFAULT NULL::character varying, - "security_audit_file" varchar(255) COLLATE "pg_catalog"."default" DEFAULT NULL::character varying, - "status" varchar(255) COLLATE "pg_catalog"."default" DEFAULT NULL::character varying, - "keywords" varchar(255) COLLATE "pg_catalog"."default" DEFAULT NULL::character varying, - "tool_source" varchar(255) COLLATE "pg_catalog"."default", - "tool_version" varchar(255) COLLATE "pg_catalog"."default", - "data_source" varchar(255) COLLATE "pg_catalog"."default", - "data_collection_date" timestamp(0) DEFAULT CURRENT_TIMESTAMP, - "commit_count" int8, - "issues_count" int8, - "issues_closed" int8, - "pull_request_count" int8, - "pull_requests_open" int8, - "pull_requests_closed" int8, - "pull_requests_merged" int8, - CONSTRAINT "repo_info_pkey" PRIMARY KEY ("repo_info_id") -); -ALTER TABLE IF EXISTS "augur_data"."repo_info" OWNER TO "augur"; - -CREATE TABLE IF NOT EXISTS "augur_data"."repo_insights" ( - "ri_id" int8 NOT NULL DEFAULT nextval('"augur_data".repo_insights_ri_id_seq'::regclass), - "repo_id" int8, - "ri_metric" varchar COLLATE "pg_catalog"."default", - "ri_value" varchar(255) COLLATE "pg_catalog"."default", - "ri_date" timestamp(0), - "ri_fresh" bool, - "tool_source" varchar COLLATE "pg_catalog"."default", - "tool_version" varchar COLLATE "pg_catalog"."default", - "data_source" varchar COLLATE "pg_catalog"."default", - "data_collection_date" timestamp(0) DEFAULT CURRENT_TIMESTAMP, - "ri_score" numeric, - "ri_field" varchar(255) COLLATE "pg_catalog"."default", - "ri_detection_method" varchar(255) COLLATE "pg_catalog"."default", - CONSTRAINT "repo_insights_pkey" PRIMARY KEY ("ri_id") -); -ALTER TABLE IF EXISTS "augur_data"."repo_insights" OWNER TO "augur"; -COMMENT ON COLUMN "augur_data"."repo_insights"."ri_fresh" IS 'false if the date is before the statistic that triggered the insight, true if after. This allows us to automatically display only "fresh insights" and avoid displaying "stale insights". The insight worker will populate this table. '; -COMMENT ON TABLE "augur_data"."repo_insights" IS 'This table is output from an analytical worker inside of Augur. It runs through the different metrics on a repository and identifies the five to ten most “interesting” metrics as defined by some kind of delta or other factor. The algorithm is going to evolve. - -Worker Design Notes: The idea is that the "insight worker" will scan through a bunch of active metrics or "synthetic metrics" to list the most important insights. '; - -CREATE TABLE IF NOT EXISTS "augur_data"."repo_insights_records" ( - "ri_id" int8 NOT NULL DEFAULT nextval('"augur_data".repo_insights_records_ri_id_seq'::regclass), - "repo_id" int8, - "ri_metric" varchar COLLATE "pg_catalog"."default", - "ri_field" varchar COLLATE "pg_catalog"."default", - "ri_value" varchar COLLATE "pg_catalog"."default", - "ri_date" timestamp(6), - "ri_score" float8, - "ri_detection_method" varchar COLLATE "pg_catalog"."default", - "tool_source" varchar COLLATE "pg_catalog"."default", - "tool_version" varchar COLLATE "pg_catalog"."default", - "data_source" varchar COLLATE "pg_catalog"."default", - "data_collection_date" timestamp(6) DEFAULT CURRENT_TIMESTAMP, - CONSTRAINT "repo_insights_records_pkey" PRIMARY KEY ("ri_id") -); -ALTER TABLE IF EXISTS "augur_data"."repo_insights_records" OWNER TO "augur"; -CREATE INDEX "dater" ON "augur_data"."repo_insights_records" USING btree ( - "ri_date" "pg_catalog"."timestamp_ops" ASC NULLS LAST -); -COMMENT ON COLUMN "augur_data"."repo_insights_records"."ri_id" IS 'Primary key. '; -COMMENT ON COLUMN "augur_data"."repo_insights_records"."repo_id" IS 'Refers to repo table primary key. Will have a foreign key'; -COMMENT ON COLUMN "augur_data"."repo_insights_records"."ri_metric" IS 'The metric endpoint'; -COMMENT ON COLUMN "augur_data"."repo_insights_records"."ri_field" IS 'The field in the metric endpoint'; -COMMENT ON COLUMN "augur_data"."repo_insights_records"."ri_value" IS 'The value of the endpoint in ri_field'; -COMMENT ON COLUMN "augur_data"."repo_insights_records"."ri_date" IS 'The date the insight is for; in other words, some anomaly occurred on this date. '; -COMMENT ON COLUMN "augur_data"."repo_insights_records"."ri_score" IS 'A Score, derived from the algorithm used. '; -COMMENT ON COLUMN "augur_data"."repo_insights_records"."ri_detection_method" IS 'A confidence interval or other expression of the type of threshold and the value of a threshold met in order for it to be "an insight". Example. "95% confidence interval". '; -COMMENT ON COLUMN "augur_data"."repo_insights_records"."tool_source" IS 'Standard Augur Metadata'; -COMMENT ON COLUMN "augur_data"."repo_insights_records"."tool_version" IS 'Standard Augur Metadata'; -COMMENT ON COLUMN "augur_data"."repo_insights_records"."data_source" IS 'Standard Augur Metadata'; -COMMENT ON COLUMN "augur_data"."repo_insights_records"."data_collection_date" IS 'Standard Augur Metadata'; - -CREATE TABLE IF NOT EXISTS "augur_data"."repo_labor" ( - "repo_labor_id" int8 NOT NULL DEFAULT nextval('"augur_data".repo_labor_repo_labor_id_seq'::regclass), - "repo_id" int8, - "repo_clone_date" timestamp(0), - "rl_analysis_date" timestamp(0), - "programming_language" varchar(255) COLLATE "pg_catalog"."default" DEFAULT NULL::character varying, - "file_path" varchar(500) COLLATE "pg_catalog"."default" DEFAULT NULL::character varying, - "file_name" varchar(255) COLLATE "pg_catalog"."default" DEFAULT NULL::character varying, - "total_lines" int4, - "code_lines" int4, - "comment_lines" int4, - "blank_lines" int4, - "code_complexity" int4, - "repo_url" varchar(500) COLLATE "pg_catalog"."default" DEFAULT NULL::character varying, - "tool_source" varchar(255) COLLATE "pg_catalog"."default", - "tool_version" varchar(255) COLLATE "pg_catalog"."default", - "data_source" varchar(255) COLLATE "pg_catalog"."default", - "data_collection_date" timestamp(0), - CONSTRAINT "repo_labor_pkey" PRIMARY KEY ("repo_labor_id") -); -ALTER TABLE IF EXISTS "augur_data"."repo_labor" OWNER TO "augur"; -COMMENT ON COLUMN "augur_data"."repo_labor"."repo_url" IS 'This is a convenience column to simplify analysis against external datasets'; -COMMENT ON TABLE "augur_data"."repo_labor" IS 'repo_labor is a derivative of tables used to store scc code and complexity counting statistics that are inputs to labor analysis, which are components of CHAOSS value metric calculations. '; - -CREATE TABLE IF NOT EXISTS "augur_data"."repo_meta" ( - "repo_id" int8 NOT NULL, - "rmeta_id" int8 NOT NULL DEFAULT nextval('"augur_data".repo_meta_rmeta_id_seq'::regclass), - "rmeta_name" varchar(255) COLLATE "pg_catalog"."default", - "rmeta_value" varchar(255) COLLATE "pg_catalog"."default" DEFAULT 0, - "tool_source" varchar(255) COLLATE "pg_catalog"."default", - "tool_version" varchar(255) COLLATE "pg_catalog"."default", - "data_source" varchar(255) COLLATE "pg_catalog"."default", - "data_collection_date" timestamp(0), - CONSTRAINT "repo_meta_pkey" PRIMARY KEY ("rmeta_id", "repo_id") -); -ALTER TABLE IF EXISTS "augur_data"."repo_meta" OWNER TO "augur"; -COMMENT ON TABLE "augur_data"."repo_meta" IS 'Project Languages'; - -CREATE TABLE IF NOT EXISTS "augur_data"."repo_sbom_scans" ( - "rsb_id" int8 NOT NULL DEFAULT nextval('"augur_data".repo_sbom_scans_rsb_id_seq'::regclass), - "repo_id" int4, - "sbom_scan" json, - CONSTRAINT "repo_sbom_scans_pkey" PRIMARY KEY ("rsb_id") -); -ALTER TABLE IF EXISTS "augur_data"."repo_sbom_scans" OWNER TO "augur"; - -CREATE TABLE IF NOT EXISTS "augur_data"."repo_stats" ( - "repo_id" int8 NOT NULL, - "rstat_id" int8 NOT NULL DEFAULT nextval('"augur_data".repo_stats_rstat_id_seq'::regclass), - "rstat_name" varchar(400) COLLATE "pg_catalog"."default", - "rstat_value" int8, - "tool_source" varchar(255) COLLATE "pg_catalog"."default", - "tool_version" varchar(255) COLLATE "pg_catalog"."default", - "data_source" varchar(255) COLLATE "pg_catalog"."default", - "data_collection_date" timestamp(0), - CONSTRAINT "repo_stats_pkey" PRIMARY KEY ("rstat_id", "repo_id") -); -ALTER TABLE IF EXISTS "augur_data"."repo_stats" OWNER TO "augur"; -COMMENT ON TABLE "augur_data"."repo_stats" IS 'Project Watchers'; - -CREATE TABLE IF NOT EXISTS "augur_data"."repo_test_coverage" ( - "repo_id" int8 NOT NULL DEFAULT nextval('"augur_data".repo_test_coverage_repo_id_seq'::regclass), - "repo_clone_date" timestamp(0), - "rtc_analysis_date" timestamp(0), - "programming_language" varchar COLLATE "pg_catalog"."default", - "file_path" varchar COLLATE "pg_catalog"."default", - "file_name" varchar COLLATE "pg_catalog"."default", - "testing_tool" varchar COLLATE "pg_catalog"."default", - "file_statement_count" int8, - "file_subroutine_count" int8, - "file_statements_tested" int8, - "file_subroutines_tested" int8, - "tool_source" varchar COLLATE "pg_catalog"."default", - "tool_version" varchar COLLATE "pg_catalog"."default", - "data_source" varchar COLLATE "pg_catalog"."default", - "data_collection_date" timestamp(0) DEFAULT CURRENT_TIMESTAMP, - CONSTRAINT "repo_test_coverage_pkey" PRIMARY KEY ("repo_id") -); -ALTER TABLE IF EXISTS "augur_data"."repo_test_coverage" OWNER TO "augur"; - -CREATE TABLE IF NOT EXISTS "augur_data"."repo_topic" ( - "repo_topic_id" int8 NOT NULL DEFAULT nextval('"augur_data".repo_topic_repo_topic_id_seq'::regclass), - "repo_id" int4, - "topic_id" int4, - "topic_prob" float8, - "tool_source" varchar COLLATE "pg_catalog"."default", - "tool_version" varchar COLLATE "pg_catalog"."default", - "data_source" varchar COLLATE "pg_catalog"."default", - "data_collection_date" timestamp(0) DEFAULT CURRENT_TIMESTAMP, - CONSTRAINT "repo_topic_pkey" PRIMARY KEY ("repo_topic_id") -); -ALTER TABLE IF EXISTS "augur_data"."repo_topic" OWNER TO "augur"; - -CREATE TABLE IF NOT EXISTS "augur_data"."repos_fetch_log" ( - "repos_id" int4 NOT NULL, - "status" varchar(128) COLLATE "pg_catalog"."default" NOT NULL, - "date" timestamp(0) NOT NULL DEFAULT CURRENT_TIMESTAMP -); -ALTER TABLE IF EXISTS "augur_data"."repos_fetch_log" OWNER TO "augur"; -CREATE INDEX "repos_id,status" ON "augur_data"."repos_fetch_log" USING btree ( - "repos_id" "pg_catalog"."int4_ops" ASC NULLS LAST, - "status" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST -); -CREATE INDEX "repos_id,statusops" ON "augur_data"."repos_fetch_log" USING btree ( - "repos_id" "pg_catalog"."int4_ops" ASC NULLS LAST, - "status" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST -); - -CREATE TABLE IF NOT EXISTS "augur_data"."settings" ( - "id" int4 NOT NULL, - "setting" varchar(32) COLLATE "pg_catalog"."default" NOT NULL, - "value" varchar COLLATE "pg_catalog"."default" NOT NULL, - "last_modified" timestamp(0) NOT NULL DEFAULT CURRENT_TIMESTAMP, - CONSTRAINT "settings_pkey" PRIMARY KEY ("id") -); -ALTER TABLE IF EXISTS "augur_data"."settings" OWNER TO "augur"; - -CREATE TABLE IF NOT EXISTS "augur_data"."topic_words" ( - "topic_words_id" int8 NOT NULL DEFAULT nextval('"augur_data".topic_words_topic_words_id_seq'::regclass), - "topic_id" int8, - "word" varchar COLLATE "pg_catalog"."default", - "word_prob" float8, - "tool_source" varchar COLLATE "pg_catalog"."default", - "tool_version" varchar COLLATE "pg_catalog"."default", - "data_source" varchar COLLATE "pg_catalog"."default", - "data_collection_date" timestamp(0) DEFAULT CURRENT_TIMESTAMP, - CONSTRAINT "topic_words_pkey" PRIMARY KEY ("topic_words_id") -); -ALTER TABLE IF EXISTS "augur_data"."topic_words" OWNER TO "augur"; - -CREATE TABLE IF NOT EXISTS "augur_data"."unknown_cache" ( - "type" varchar(10) COLLATE "pg_catalog"."default" NOT NULL, - "repo_group_id" int4 NOT NULL, - "email" varchar(128) COLLATE "pg_catalog"."default" NOT NULL, - "domain" varchar(128) COLLATE "pg_catalog"."default" DEFAULT 'NULL'::character varying, - "added" int8 NOT NULL, - "tool_source" varchar(255) COLLATE "pg_catalog"."default", - "tool_version" varchar(255) COLLATE "pg_catalog"."default", - "data_source" varchar(255) COLLATE "pg_catalog"."default", - "data_collection_date" timestamp(0) DEFAULT CURRENT_TIMESTAMP -); -ALTER TABLE IF EXISTS "augur_data"."unknown_cache" OWNER TO "augur"; -CREATE INDEX "type,projects_id" ON "augur_data"."unknown_cache" USING btree ( - "type" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST, - "repo_group_id" "pg_catalog"."int4_ops" ASC NULLS LAST -); - -CREATE TABLE IF NOT EXISTS "augur_data"."utility_log" ( - "id" int8 NOT NULL DEFAULT nextval('"augur_data".utility_log_id_seq1'::regclass), - "level" varchar(8) COLLATE "pg_catalog"."default" NOT NULL, - "status" varchar COLLATE "pg_catalog"."default" NOT NULL, - "attempted" timestamp(0) NOT NULL DEFAULT CURRENT_TIMESTAMP, - CONSTRAINT "utility_log_pkey" PRIMARY KEY ("id") -); -ALTER TABLE IF EXISTS "augur_data"."utility_log" OWNER TO "augur"; - -CREATE TABLE IF NOT EXISTS "augur_data"."working_commits" ( - "repos_id" int4 NOT NULL, - "working_commit" varchar(40) COLLATE "pg_catalog"."default" DEFAULT 'NULL'::character varying -); -ALTER TABLE IF EXISTS "augur_data"."working_commits" OWNER TO "augur"; - -CREATE TABLE IF NOT EXISTS "augur_operations"."all" ( - "Name" varchar COLLATE "pg_catalog"."default", - "Bytes" varchar COLLATE "pg_catalog"."default", - "Lines" varchar COLLATE "pg_catalog"."default", - "Code" varchar COLLATE "pg_catalog"."default", - "Comment" varchar COLLATE "pg_catalog"."default", - "Blank" varchar COLLATE "pg_catalog"."default", - "Complexity" varchar COLLATE "pg_catalog"."default", - "Count" varchar COLLATE "pg_catalog"."default", - "WeightedComplexity" varchar COLLATE "pg_catalog"."default", - "Files" varchar COLLATE "pg_catalog"."default" -); -ALTER TABLE IF EXISTS "augur_operations"."all" OWNER TO "augur"; - -CREATE TABLE IF NOT EXISTS "augur_operations"."augur_settings" ( - "id" int8 NOT NULL DEFAULT nextval('"augur_operations".augur_settings_id_seq'::regclass), - "setting" varchar COLLATE "pg_catalog"."default", - "value" varchar COLLATE "pg_catalog"."default", - "last_modified" timestamp(0) DEFAULT CURRENT_DATE, - CONSTRAINT "augur_settings_pkey" PRIMARY KEY ("id") -); -ALTER TABLE IF EXISTS "augur_operations"."augur_settings" OWNER TO "augur"; -COMMENT ON TABLE "augur_operations"."augur_settings" IS 'Augur settings include the schema version, and the Augur API Key as of 10/25/2020. Future augur settings may be stored in this table, which has the basic structure of a name-value pair. '; - -CREATE TABLE IF NOT EXISTS "augur_operations"."repos_fetch_log" ( - "repos_id" int4 NOT NULL, - "status" varchar(128) COLLATE "pg_catalog"."default" NOT NULL, - "date" timestamp(0) NOT NULL DEFAULT CURRENT_TIMESTAMP -); -ALTER TABLE IF EXISTS "augur_operations"."repos_fetch_log" OWNER TO "augur"; -CREATE INDEX "repos_id,statusops" ON "augur_operations"."repos_fetch_log" USING btree ( - "repos_id" "pg_catalog"."int4_ops" ASC NULLS LAST, - "status" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST -); -COMMENT ON TABLE "augur_operations"."repos_fetch_log" IS 'For future use when we move all working tables to the augur_operations schema. '; - -CREATE TABLE IF NOT EXISTS "augur_operations"."worker_history" ( - "history_id" int8 NOT NULL DEFAULT nextval('"augur_operations".gh_worker_history_history_id_seq'::regclass), - "repo_id" int8, - "worker" varchar(255) COLLATE "pg_catalog"."default" NOT NULL, - "job_model" varchar(255) COLLATE "pg_catalog"."default" NOT NULL, - "oauth_id" int4 NOT NULL, - "timestamp" timestamp(0) NOT NULL, - "status" varchar(7) COLLATE "pg_catalog"."default" NOT NULL, - "total_results" int4, - CONSTRAINT "history_pkey" PRIMARY KEY ("history_id") -); -ALTER TABLE IF EXISTS "augur_operations"."worker_history" OWNER TO "augur"; -COMMENT ON TABLE "augur_operations"."worker_history" IS 'This table stores the complete history of job execution, including success and failure. It is useful for troubleshooting. '; - -CREATE TABLE IF NOT EXISTS "augur_operations"."worker_job" ( - "job_model" varchar(255) COLLATE "pg_catalog"."default" NOT NULL, - "state" int4 NOT NULL DEFAULT 0, - "zombie_head" int4, - "since_id_str" varchar(255) COLLATE "pg_catalog"."default" NOT NULL DEFAULT '0'::character varying, - "description" varchar(255) COLLATE "pg_catalog"."default" DEFAULT 'None'::character varying, - "last_count" int4, - "last_run" timestamp(0) DEFAULT NULL::timestamp without time zone, - "analysis_state" int4 DEFAULT 0, - "oauth_id" int4 NOT NULL, - CONSTRAINT "job_pkey" PRIMARY KEY ("job_model") -); -ALTER TABLE IF EXISTS "augur_operations"."worker_job" OWNER TO "augur"; -COMMENT ON TABLE "augur_operations"."worker_job" IS 'This table stores the jobs workers collect data for. A job is found in the code, and in the augur.config.json under the construct of a “model”. '; - -CREATE TABLE IF NOT EXISTS "augur_operations"."worker_oauth" ( - "oauth_id" int8 NOT NULL DEFAULT nextval('"augur_operations".worker_oauth_oauth_id_seq'::regclass), - "name" varchar(255) COLLATE "pg_catalog"."default" NOT NULL, - "consumer_key" varchar(255) COLLATE "pg_catalog"."default" NOT NULL, - "consumer_secret" varchar(255) COLLATE "pg_catalog"."default" NOT NULL, - "access_token" varchar(255) COLLATE "pg_catalog"."default" NOT NULL, - "access_token_secret" varchar(255) COLLATE "pg_catalog"."default" NOT NULL, - "repo_directory" varchar COLLATE "pg_catalog"."default", - "platform" varchar COLLATE "pg_catalog"."default" DEFAULT 'github'::character varying, - CONSTRAINT "worker_oauth_pkey" PRIMARY KEY ("oauth_id") -); -ALTER TABLE IF EXISTS "augur_operations"."worker_oauth" OWNER TO "augur"; -COMMENT ON TABLE "augur_operations"."worker_oauth" IS 'This table stores credentials for retrieving data from platform API’s. Entries in this table must comply with the terms of service for each platform. '; - -CREATE TABLE IF NOT EXISTS "augur_operations"."worker_settings_facade" ( - "id" int4 NOT NULL, - "setting" varchar(32) COLLATE "pg_catalog"."default" NOT NULL, - "value" varchar COLLATE "pg_catalog"."default" NOT NULL, - "last_modified" timestamp(0) NOT NULL DEFAULT CURRENT_TIMESTAMP, - CONSTRAINT "settings_pkey" PRIMARY KEY ("id") -); -ALTER TABLE IF EXISTS "augur_operations"."worker_settings_facade" OWNER TO "augur"; -COMMENT ON TABLE "augur_operations"."worker_settings_facade" IS 'For future use when we move all working tables to the augur_operations schema. '; - -CREATE TABLE IF NOT EXISTS "augur_operations"."working_commits" ( - "repos_id" int4 NOT NULL, - "working_commit" varchar(40) COLLATE "pg_catalog"."default" DEFAULT 'NULL'::character varying -); -ALTER TABLE IF EXISTS "augur_operations"."working_commits" OWNER TO "augur"; -COMMENT ON TABLE "augur_operations"."working_commits" IS 'For future use when we move all working tables to the augur_operations schema. '; - -CREATE TABLE IF NOT EXISTS "spdx"."annotation_types" ( - "annotation_type_id" int4 NOT NULL DEFAULT nextval('"spdx".annotation_types_annotation_type_id_seq'::regclass), - "name" varchar(255) COLLATE "pg_catalog"."default" NOT NULL, - CONSTRAINT "annotation_types_pkey" PRIMARY KEY ("annotation_type_id"), - CONSTRAINT "uc_annotation_type_name" UNIQUE ("name") -); -ALTER TABLE IF EXISTS "spdx"."annotation_types" OWNER TO "augur"; - -CREATE TABLE IF NOT EXISTS "spdx"."annotations" ( - "annotation_id" int4 NOT NULL DEFAULT nextval('"spdx".annotations_annotation_id_seq'::regclass), - "document_id" int4 NOT NULL, - "annotation_type_id" int4 NOT NULL, - "identifier_id" int4 NOT NULL, - "creator_id" int4 NOT NULL, - "created_ts" timestamptz(6), - "comment" text COLLATE "pg_catalog"."default" NOT NULL, - CONSTRAINT "annotations_pkey" PRIMARY KEY ("annotation_id") -); -ALTER TABLE IF EXISTS "spdx"."annotations" OWNER TO "augur"; - -CREATE TABLE IF NOT EXISTS "spdx"."augur_repo_map" ( - "map_id" int4 NOT NULL DEFAULT nextval('"spdx".augur_repo_map_map_id_seq'::regclass), - "dosocs_pkg_id" int4, - "dosocs_pkg_name" text COLLATE "pg_catalog"."default", - "repo_id" int4, - "repo_path" text COLLATE "pg_catalog"."default", - CONSTRAINT "augur_repo_map_pkey" PRIMARY KEY ("map_id") -); -ALTER TABLE IF EXISTS "spdx"."augur_repo_map" OWNER TO "augur"; - -CREATE TABLE IF NOT EXISTS "spdx"."creator_types" ( - "creator_type_id" int4 NOT NULL DEFAULT nextval('"spdx".creator_types_creator_type_id_seq'::regclass), - "name" varchar(255) COLLATE "pg_catalog"."default" NOT NULL, - CONSTRAINT "creator_types_pkey" PRIMARY KEY ("creator_type_id") -); -ALTER TABLE IF EXISTS "spdx"."creator_types" OWNER TO "augur"; - -CREATE TABLE IF NOT EXISTS "spdx"."creators" ( - "creator_id" int4 NOT NULL DEFAULT nextval('"spdx".creators_creator_id_seq'::regclass), - "creator_type_id" int4 NOT NULL, - "name" varchar(255) COLLATE "pg_catalog"."default" NOT NULL, - "email" varchar(255) COLLATE "pg_catalog"."default" NOT NULL, - CONSTRAINT "creators_pkey" PRIMARY KEY ("creator_id") -); -ALTER TABLE IF EXISTS "spdx"."creators" OWNER TO "augur"; - -CREATE TABLE IF NOT EXISTS "spdx"."document_namespaces" ( - "document_namespace_id" int4 NOT NULL DEFAULT nextval('"spdx".document_namespaces_document_namespace_id_seq'::regclass), - "uri" varchar(500) COLLATE "pg_catalog"."default" NOT NULL, - CONSTRAINT "document_namespaces_pkey" PRIMARY KEY ("document_namespace_id"), - CONSTRAINT "uc_document_namespace_uri" UNIQUE ("uri") -); -ALTER TABLE IF EXISTS "spdx"."document_namespaces" OWNER TO "augur"; - -CREATE TABLE IF NOT EXISTS "spdx"."documents" ( - "document_id" int4 NOT NULL DEFAULT nextval('"spdx".documents_document_id_seq'::regclass), - "document_namespace_id" int4 NOT NULL, - "data_license_id" int4 NOT NULL, - "spdx_version" varchar(255) COLLATE "pg_catalog"."default" NOT NULL, - "name" varchar(255) COLLATE "pg_catalog"."default" NOT NULL, - "license_list_version" varchar(255) COLLATE "pg_catalog"."default" NOT NULL, - "created_ts" timestamptz(6) NOT NULL, - "creator_comment" text COLLATE "pg_catalog"."default" NOT NULL, - "document_comment" text COLLATE "pg_catalog"."default" NOT NULL, - "package_id" int4 NOT NULL, - CONSTRAINT "documents_pkey" PRIMARY KEY ("document_id"), - CONSTRAINT "uc_document_document_namespace_id" UNIQUE ("document_namespace_id") -); -ALTER TABLE IF EXISTS "spdx"."documents" OWNER TO "augur"; - -CREATE TABLE IF NOT EXISTS "spdx"."documents_creators" ( - "document_creator_id" int4 NOT NULL DEFAULT nextval('"spdx".documents_creators_document_creator_id_seq'::regclass), - "document_id" int4 NOT NULL, - "creator_id" int4 NOT NULL, - CONSTRAINT "documents_creators_pkey" PRIMARY KEY ("document_creator_id") -); -ALTER TABLE IF EXISTS "spdx"."documents_creators" OWNER TO "augur"; - -CREATE TABLE IF NOT EXISTS "spdx"."external_refs" ( - "external_ref_id" int4 NOT NULL DEFAULT nextval('"spdx".external_refs_external_ref_id_seq'::regclass), - "document_id" int4 NOT NULL, - "document_namespace_id" int4 NOT NULL, - "id_string" varchar(255) COLLATE "pg_catalog"."default" NOT NULL, - "sha256" varchar(64) COLLATE "pg_catalog"."default" NOT NULL, - CONSTRAINT "external_refs_pkey" PRIMARY KEY ("external_ref_id"), - CONSTRAINT "uc_external_ref_document_id_string" UNIQUE ("document_id", "id_string") -); -ALTER TABLE IF EXISTS "spdx"."external_refs" OWNER TO "augur"; - -CREATE TABLE IF NOT EXISTS "spdx"."file_contributors" ( - "file_contributor_id" int4 NOT NULL DEFAULT nextval('"spdx".file_contributors_file_contributor_id_seq'::regclass), - "file_id" int4 NOT NULL, - "contributor" text COLLATE "pg_catalog"."default" NOT NULL, - CONSTRAINT "file_contributors_pkey" PRIMARY KEY ("file_contributor_id") -); -ALTER TABLE IF EXISTS "spdx"."file_contributors" OWNER TO "augur"; - -CREATE TABLE IF NOT EXISTS "spdx"."file_types" ( - "file_type_id" int4, - "name" varchar(255) COLLATE "pg_catalog"."default" NOT NULL, - CONSTRAINT "uc_file_type_name" PRIMARY KEY ("name") -); -ALTER TABLE IF EXISTS "spdx"."file_types" OWNER TO "augur"; - -CREATE TABLE IF NOT EXISTS "spdx"."files" ( - "file_id" int4 NOT NULL DEFAULT nextval('"spdx".files_file_id_seq'::regclass), - "file_type_id" int4, - "sha256" varchar(64) COLLATE "pg_catalog"."default" NOT NULL, - "copyright_text" text COLLATE "pg_catalog"."default", - "package_id" int4, - "comment" text COLLATE "pg_catalog"."default" NOT NULL, - "notice" text COLLATE "pg_catalog"."default" NOT NULL, - CONSTRAINT "files_pkey" PRIMARY KEY ("file_id"), - CONSTRAINT "uc_file_sha256" UNIQUE ("sha256") -); -ALTER TABLE IF EXISTS "spdx"."files" OWNER TO "augur"; - -CREATE TABLE IF NOT EXISTS "spdx"."files_licenses" ( - "file_license_id" int4 NOT NULL DEFAULT nextval('"spdx".files_licenses_file_license_id_seq'::regclass), - "file_id" int4 NOT NULL, - "license_id" int4 NOT NULL, - "extracted_text" text COLLATE "pg_catalog"."default" NOT NULL, - CONSTRAINT "files_licenses_pkey" PRIMARY KEY ("file_license_id"), - CONSTRAINT "uc_file_license" UNIQUE ("file_id", "license_id") -); -ALTER TABLE IF EXISTS "spdx"."files_licenses" OWNER TO "augur"; - -CREATE TABLE IF NOT EXISTS "spdx"."files_scans" ( - "file_scan_id" int4 NOT NULL DEFAULT nextval('"spdx".files_scans_file_scan_id_seq'::regclass), - "file_id" int4 NOT NULL, - "scanner_id" int4 NOT NULL, - CONSTRAINT "files_scans_pkey" PRIMARY KEY ("file_scan_id"), - CONSTRAINT "uc_file_scanner_id" UNIQUE ("file_id", "scanner_id") -); -ALTER TABLE IF EXISTS "spdx"."files_scans" OWNER TO "augur"; - -CREATE TABLE IF NOT EXISTS "spdx"."identifiers" ( - "identifier_id" int4 NOT NULL DEFAULT nextval('"spdx".identifiers_identifier_id_seq'::regclass), - "document_namespace_id" int4 NOT NULL, - "id_string" varchar(255) COLLATE "pg_catalog"."default" NOT NULL, - "document_id" int4, - "package_id" int4, - "package_file_id" int4, - CONSTRAINT "identifiers_pkey" PRIMARY KEY ("identifier_id"), - CONSTRAINT "uc_identifier_document_namespace_id" UNIQUE ("document_namespace_id", "id_string"), - CONSTRAINT "uc_identifier_namespace_document_id" UNIQUE ("document_namespace_id", "document_id"), - CONSTRAINT "uc_identifier_namespace_package_id" UNIQUE ("document_namespace_id", "package_id"), - CONSTRAINT "uc_identifier_namespace_package_file_id" UNIQUE ("document_namespace_id", "package_file_id"), - CONSTRAINT "ck_identifier_exactly_one" CHECK (((document_id IS NOT NULL)::integer + (package_id IS NOT NULL)::integer + (package_file_id IS NOT NULL)::integer) = 1) -); -ALTER TABLE IF EXISTS "spdx"."identifiers" OWNER TO "augur"; - -CREATE TABLE IF NOT EXISTS "spdx"."licenses" ( - "license_id" int4 NOT NULL DEFAULT nextval('"spdx".licenses_license_id_seq'::regclass), - "name" varchar(255) COLLATE "pg_catalog"."default", - "short_name" varchar(255) COLLATE "pg_catalog"."default" NOT NULL, - "cross_reference" text COLLATE "pg_catalog"."default" NOT NULL, - "comment" text COLLATE "pg_catalog"."default" NOT NULL, - "is_spdx_official" bool NOT NULL, - CONSTRAINT "licenses_pkey" PRIMARY KEY ("license_id"), - CONSTRAINT "uc_license_short_name" UNIQUE ("short_name") -); -ALTER TABLE IF EXISTS "spdx"."licenses" OWNER TO "augur"; - -CREATE TABLE IF NOT EXISTS "spdx"."packages" ( - "package_id" int4 NOT NULL DEFAULT nextval('"spdx".packages_package_id_seq'::regclass), - "name" varchar(255) COLLATE "pg_catalog"."default" NOT NULL, - "version" varchar(255) COLLATE "pg_catalog"."default" NOT NULL, - "file_name" text COLLATE "pg_catalog"."default" NOT NULL, - "supplier_id" int4, - "originator_id" int4, - "download_location" text COLLATE "pg_catalog"."default", - "verification_code" varchar(64) COLLATE "pg_catalog"."default" NOT NULL, - "ver_code_excluded_file_id" int4, - "sha256" varchar(64) COLLATE "pg_catalog"."default", - "home_page" text COLLATE "pg_catalog"."default", - "source_info" text COLLATE "pg_catalog"."default" NOT NULL, - "concluded_license_id" int4, - "declared_license_id" int4, - "license_comment" text COLLATE "pg_catalog"."default" NOT NULL, - "copyright_text" text COLLATE "pg_catalog"."default", - "summary" text COLLATE "pg_catalog"."default" NOT NULL, - "description" text COLLATE "pg_catalog"."default" NOT NULL, - "comment" text COLLATE "pg_catalog"."default" NOT NULL, - "dosocs2_dir_code" varchar(64) COLLATE "pg_catalog"."default", - CONSTRAINT "packages_pkey" PRIMARY KEY ("package_id"), - CONSTRAINT "uc_package_sha256" UNIQUE ("sha256"), - CONSTRAINT "uc_dir_code_ver_code" UNIQUE ("verification_code", "dosocs2_dir_code"), - CONSTRAINT "uc_sha256_ds2_dir_code_exactly_one" CHECK (((sha256 IS NOT NULL)::integer + (dosocs2_dir_code IS NOT NULL)::integer) = 1) -); -ALTER TABLE IF EXISTS "spdx"."packages" OWNER TO "augur"; - -CREATE TABLE IF NOT EXISTS "spdx"."packages_files" ( - "package_file_id" int4 NOT NULL DEFAULT nextval('"spdx".packages_files_package_file_id_seq'::regclass), - "package_id" int4 NOT NULL, - "file_id" int4 NOT NULL, - "concluded_license_id" int4, - "license_comment" text COLLATE "pg_catalog"."default" NOT NULL, - "file_name" text COLLATE "pg_catalog"."default" NOT NULL, - CONSTRAINT "packages_files_pkey" PRIMARY KEY ("package_file_id"), - CONSTRAINT "uc_package_id_file_name" UNIQUE ("package_id", "file_name") -); -ALTER TABLE IF EXISTS "spdx"."packages_files" OWNER TO "augur"; - -CREATE TABLE IF NOT EXISTS "spdx"."packages_scans" ( - "package_scan_id" int4 NOT NULL DEFAULT nextval('"spdx".packages_scans_package_scan_id_seq'::regclass), - "package_id" int4 NOT NULL, - "scanner_id" int4 NOT NULL, - CONSTRAINT "packages_scans_pkey" PRIMARY KEY ("package_scan_id"), - CONSTRAINT "uc_package_scanner_id" UNIQUE ("package_id", "scanner_id") -); -ALTER TABLE IF EXISTS "spdx"."packages_scans" OWNER TO "augur"; - -CREATE TABLE IF NOT EXISTS "spdx"."projects" ( - "package_id" int4 NOT NULL DEFAULT nextval('"spdx".projects_package_id_seq'::regclass), - "name" text COLLATE "pg_catalog"."default" NOT NULL, - "homepage" text COLLATE "pg_catalog"."default" NOT NULL, - "uri" text COLLATE "pg_catalog"."default" NOT NULL, - CONSTRAINT "projects_pkey" PRIMARY KEY ("package_id") -); -ALTER TABLE IF EXISTS "spdx"."projects" OWNER TO "augur"; - -CREATE TABLE IF NOT EXISTS "spdx"."relationship_types" ( - "relationship_type_id" int4 NOT NULL DEFAULT nextval('"spdx".relationship_types_relationship_type_id_seq'::regclass), - "name" varchar(255) COLLATE "pg_catalog"."default" NOT NULL, - CONSTRAINT "relationship_types_pkey" PRIMARY KEY ("relationship_type_id"), - CONSTRAINT "uc_relationship_type_name" UNIQUE ("name") -); -ALTER TABLE IF EXISTS "spdx"."relationship_types" OWNER TO "augur"; - -CREATE TABLE IF NOT EXISTS "spdx"."relationships" ( - "relationship_id" int4 NOT NULL DEFAULT nextval('"spdx".relationships_relationship_id_seq'::regclass), - "left_identifier_id" int4 NOT NULL, - "right_identifier_id" int4 NOT NULL, - "relationship_type_id" int4 NOT NULL, - "relationship_comment" text COLLATE "pg_catalog"."default" NOT NULL, - CONSTRAINT "relationships_pkey" PRIMARY KEY ("relationship_id"), - CONSTRAINT "uc_left_right_relationship_type" UNIQUE ("left_identifier_id", "right_identifier_id", "relationship_type_id") -); -ALTER TABLE IF EXISTS "spdx"."relationships" OWNER TO "augur"; - -CREATE TABLE IF NOT EXISTS "spdx"."sbom_scans" ( - "repo_id" int4, - "sbom_scan" json -); -ALTER TABLE IF EXISTS "spdx"."sbom_scans" OWNER TO "augur"; - -CREATE TABLE IF NOT EXISTS "spdx"."scanners" ( - "scanner_id" int4 NOT NULL DEFAULT nextval('"spdx".scanners_scanner_id_seq'::regclass), - "name" varchar(255) COLLATE "pg_catalog"."default" NOT NULL, - CONSTRAINT "scanners_pkey" PRIMARY KEY ("scanner_id"), - CONSTRAINT "uc_scanner_name" UNIQUE ("name") -); -ALTER TABLE IF EXISTS "spdx"."scanners" OWNER TO "augur"; - -ALTER TABLE IF EXISTS "augur_data"."commit_comment_ref" ADD CONSTRAINT "fk_commit_comment_ref_commits_1" FOREIGN KEY ("cmt_id") REFERENCES "augur_data"."commits" ("cmt_id") ON DELETE NO ACTION ON UPDATE NO ACTION; -ALTER TABLE IF EXISTS "augur_data"."commit_comment_ref" ADD CONSTRAINT "fk_commit_comment_ref_message_1" FOREIGN KEY ("msg_id") REFERENCES "augur_data"."message" ("msg_id") ON DELETE NO ACTION ON UPDATE NO ACTION; -ALTER TABLE IF EXISTS "augur_data"."commit_parents" ADD CONSTRAINT "fk_commit_parents_commits_1" FOREIGN KEY ("cmt_id") REFERENCES "augur_data"."commits" ("cmt_id") ON DELETE NO ACTION ON UPDATE NO ACTION; -ALTER TABLE IF EXISTS "augur_data"."commit_parents" ADD CONSTRAINT "fk_commit_parents_commits_2" FOREIGN KEY ("parent_id") REFERENCES "augur_data"."commits" ("cmt_id") ON DELETE NO ACTION ON UPDATE NO ACTION; -ALTER TABLE IF EXISTS "augur_data"."commits" ADD CONSTRAINT "fk_commits_contributors_1" FOREIGN KEY ("cmt_ght_author_id") REFERENCES "augur_data"."contributors" ("cntrb_id") ON DELETE NO ACTION ON UPDATE NO ACTION; -ALTER TABLE IF EXISTS "augur_data"."commits" ADD CONSTRAINT "fk_commits_contributors_2" FOREIGN KEY ("cmt_ght_committer_id") REFERENCES "augur_data"."contributors" ("cntrb_id") ON DELETE NO ACTION ON UPDATE NO ACTION; -ALTER TABLE IF EXISTS "augur_data"."commits" ADD CONSTRAINT "fk_commits_repo_1" FOREIGN KEY ("repo_id") REFERENCES "augur_data"."repo" ("repo_id") ON DELETE NO ACTION ON UPDATE NO ACTION; -ALTER TABLE IF EXISTS "augur_data"."contributors_aliases" ADD CONSTRAINT "fk_contributors_aliases_contributors_1" FOREIGN KEY ("cntrb_id") REFERENCES "augur_data"."contributors" ("cntrb_id") ON DELETE NO ACTION ON UPDATE NO ACTION; -ALTER TABLE IF EXISTS "augur_data"."contributors_history" ADD CONSTRAINT "fk_contributors_history_contributors_1" FOREIGN KEY ("cntrb_id") REFERENCES "augur_data"."contributors" ("cntrb_id") ON DELETE NO ACTION ON UPDATE NO ACTION; -ALTER TABLE IF EXISTS "augur_data"."discourse_insights" ADD CONSTRAINT "fk_discourse_insights_message_1" FOREIGN KEY ("msg_id") REFERENCES "augur_data"."message" ("msg_id"); -ALTER TABLE IF EXISTS "augur_data"."issue_assignees" ADD CONSTRAINT "fk_issue_assignees_contributors_1" FOREIGN KEY ("cntrb_id") REFERENCES "augur_data"."contributors" ("cntrb_id") ON DELETE NO ACTION ON UPDATE NO ACTION; -ALTER TABLE IF EXISTS "augur_data"."issue_assignees" ADD CONSTRAINT "fk_issue_assignees_issues_1" FOREIGN KEY ("issue_id") REFERENCES "augur_data"."issues" ("issue_id") ON DELETE NO ACTION ON UPDATE NO ACTION; -ALTER TABLE IF EXISTS "augur_data"."issue_events" ADD CONSTRAINT "fk_issue_events_contributors_1" FOREIGN KEY ("cntrb_id") REFERENCES "augur_data"."contributors" ("cntrb_id") ON DELETE NO ACTION ON UPDATE NO ACTION; -ALTER TABLE IF EXISTS "augur_data"."issue_events" ADD CONSTRAINT "fk_issue_events_issues_1" FOREIGN KEY ("issue_id") REFERENCES "augur_data"."issues" ("issue_id") ON DELETE NO ACTION ON UPDATE NO ACTION; -ALTER TABLE IF EXISTS "augur_data"."issue_labels" ADD CONSTRAINT "fk_issue_labels_issues_1" FOREIGN KEY ("issue_id") REFERENCES "augur_data"."issues" ("issue_id") ON DELETE NO ACTION ON UPDATE NO ACTION; -ALTER TABLE IF EXISTS "augur_data"."issue_message_ref" ADD CONSTRAINT "fk_issue_message_ref_issues_1" FOREIGN KEY ("issue_id") REFERENCES "augur_data"."issues" ("issue_id") ON DELETE NO ACTION ON UPDATE NO ACTION; -ALTER TABLE IF EXISTS "augur_data"."issue_message_ref" ADD CONSTRAINT "fk_issue_message_ref_message_1" FOREIGN KEY ("msg_id") REFERENCES "augur_data"."message" ("msg_id") ON DELETE NO ACTION ON UPDATE NO ACTION; -ALTER TABLE IF EXISTS "augur_data"."issues" ADD CONSTRAINT "fk_issues_contributors_1" FOREIGN KEY ("cntrb_id") REFERENCES "augur_data"."contributors" ("cntrb_id") ON DELETE NO ACTION ON UPDATE NO ACTION; -ALTER TABLE IF EXISTS "augur_data"."issues" ADD CONSTRAINT "fk_issues_contributors_2" FOREIGN KEY ("reporter_id") REFERENCES "augur_data"."contributors" ("cntrb_id") ON DELETE NO ACTION ON UPDATE NO ACTION; -ALTER TABLE IF EXISTS "augur_data"."issues" ADD CONSTRAINT "fk_issues_repo" FOREIGN KEY ("repo_id") REFERENCES "augur_data"."repo" ("repo_id") ON DELETE CASCADE ON UPDATE CASCADE; -ALTER TABLE IF EXISTS "augur_data"."libraries" ADD CONSTRAINT "fk_libraries_repo_1" FOREIGN KEY ("repo_id") REFERENCES "augur_data"."repo" ("repo_id") ON DELETE NO ACTION ON UPDATE NO ACTION; -ALTER TABLE IF EXISTS "augur_data"."library_dependencies" ADD CONSTRAINT "fk_library_dependencies_libraries_1" FOREIGN KEY ("library_id") REFERENCES "augur_data"."libraries" ("library_id") ON DELETE NO ACTION ON UPDATE NO ACTION; -ALTER TABLE IF EXISTS "augur_data"."library_version" ADD CONSTRAINT "fk_library_version_libraries_1" FOREIGN KEY ("library_id") REFERENCES "augur_data"."libraries" ("library_id") ON DELETE NO ACTION ON UPDATE NO ACTION; -ALTER TABLE IF EXISTS "augur_data"."lstm_anomaly_results" ADD CONSTRAINT "fk_lstm_anomaly_results_lstm_anomaly_models_1" FOREIGN KEY ("model_id") REFERENCES "augur_data"."lstm_anomaly_models" ("model_id") ON DELETE NO ACTION ON UPDATE NO ACTION; -ALTER TABLE IF EXISTS "augur_data"."lstm_anomaly_results" ADD CONSTRAINT "fk_lstm_anomaly_results_repo_1" FOREIGN KEY ("repo_id") REFERENCES "augur_data"."repo" ("repo_id") ON DELETE NO ACTION ON UPDATE NO ACTION; -ALTER TABLE IF EXISTS "augur_data"."message" ADD CONSTRAINT "fk_message_contributors_1" FOREIGN KEY ("cntrb_id") REFERENCES "augur_data"."contributors" ("cntrb_id") ON DELETE NO ACTION ON UPDATE NO ACTION; -ALTER TABLE IF EXISTS "augur_data"."message" ADD CONSTRAINT "fk_message_platform_1" FOREIGN KEY ("pltfrm_id") REFERENCES "augur_data"."platform" ("pltfrm_id") ON DELETE NO ACTION ON UPDATE NO ACTION; -ALTER TABLE IF EXISTS "augur_data"."message" ADD CONSTRAINT "fk_message_repo_groups_list_serve_1" FOREIGN KEY ("rgls_id") REFERENCES "augur_data"."repo_groups_list_serve" ("rgls_id") ON DELETE NO ACTION ON UPDATE NO ACTION; -ALTER TABLE IF EXISTS "augur_data"."message_analysis" ADD CONSTRAINT "fk_message_analysis_message_1" FOREIGN KEY ("msg_id") REFERENCES "augur_data"."message" ("msg_id"); -ALTER TABLE IF EXISTS "augur_data"."message_analysis_summary" ADD CONSTRAINT "fk_message_analysis_summary_repo_1" FOREIGN KEY ("repo_id") REFERENCES "augur_data"."repo" ("repo_id"); -ALTER TABLE IF EXISTS "augur_data"."message_sentiment" ADD CONSTRAINT "fk_message_sentiment_message_1" FOREIGN KEY ("msg_id") REFERENCES "augur_data"."message" ("msg_id"); -ALTER TABLE IF EXISTS "augur_data"."message_sentiment_summary" ADD CONSTRAINT "fk_message_sentiment_summary_repo_1" FOREIGN KEY ("repo_id") REFERENCES "augur_data"."repo" ("repo_id"); -ALTER TABLE IF EXISTS "augur_data"."pull_request_assignees" ADD CONSTRAINT "fk_pull_request_assignees_contributors_1" FOREIGN KEY ("contrib_id") REFERENCES "augur_data"."contributors" ("cntrb_id") ON DELETE NO ACTION ON UPDATE NO ACTION; -ALTER TABLE IF EXISTS "augur_data"."pull_request_assignees" ADD CONSTRAINT "fk_pull_request_assignees_pull_requests_1" FOREIGN KEY ("pull_request_id") REFERENCES "augur_data"."pull_requests" ("pull_request_id") ON DELETE NO ACTION ON UPDATE NO ACTION; -ALTER TABLE IF EXISTS "augur_data"."pull_request_commits" ADD CONSTRAINT "fk_pull_request_commits_pull_requests_1" FOREIGN KEY ("pull_request_id") REFERENCES "augur_data"."pull_requests" ("pull_request_id") ON DELETE NO ACTION ON UPDATE NO ACTION; -ALTER TABLE IF EXISTS "augur_data"."pull_request_events" ADD CONSTRAINT "fk_pull_request_events_contributors_1" FOREIGN KEY ("cntrb_id") REFERENCES "augur_data"."contributors" ("cntrb_id") ON DELETE NO ACTION ON UPDATE NO ACTION; -ALTER TABLE IF EXISTS "augur_data"."pull_request_events" ADD CONSTRAINT "fk_pull_request_events_pull_requests_1" FOREIGN KEY ("pull_request_id") REFERENCES "augur_data"."pull_requests" ("pull_request_id") ON DELETE NO ACTION ON UPDATE NO ACTION; -ALTER TABLE IF EXISTS "augur_data"."pull_request_files" ADD CONSTRAINT "fk_pull_request_commits_pull_requests_1" FOREIGN KEY ("pull_request_id") REFERENCES "augur_data"."pull_requests" ("pull_request_id") ON DELETE NO ACTION ON UPDATE NO ACTION; -ALTER TABLE IF EXISTS "augur_data"."pull_request_labels" ADD CONSTRAINT "fk_pull_request_labels_pull_requests_1" FOREIGN KEY ("pull_request_id") REFERENCES "augur_data"."pull_requests" ("pull_request_id") ON DELETE NO ACTION ON UPDATE NO ACTION; -ALTER TABLE IF EXISTS "augur_data"."pull_request_message_ref" ADD CONSTRAINT "fk_pull_request_message_ref_message_1" FOREIGN KEY ("msg_id") REFERENCES "augur_data"."message" ("msg_id") ON DELETE NO ACTION ON UPDATE NO ACTION; -ALTER TABLE IF EXISTS "augur_data"."pull_request_message_ref" ADD CONSTRAINT "fk_pull_request_message_ref_pull_requests_1" FOREIGN KEY ("pull_request_id") REFERENCES "augur_data"."pull_requests" ("pull_request_id") ON DELETE NO ACTION ON UPDATE NO ACTION; -ALTER TABLE IF EXISTS "augur_data"."pull_request_meta" ADD CONSTRAINT "fk_pull_request_meta_contributors_2" FOREIGN KEY ("cntrb_id") REFERENCES "augur_data"."contributors" ("cntrb_id") ON DELETE NO ACTION ON UPDATE NO ACTION; -ALTER TABLE IF EXISTS "augur_data"."pull_request_meta" ADD CONSTRAINT "fk_pull_request_meta_pull_requests_1" FOREIGN KEY ("pull_request_id") REFERENCES "augur_data"."pull_requests" ("pull_request_id") ON DELETE NO ACTION ON UPDATE NO ACTION; -ALTER TABLE IF EXISTS "augur_data"."pull_request_repo" ADD CONSTRAINT "fk_pull_request_repo_contributors_1" FOREIGN KEY ("pr_cntrb_id") REFERENCES "augur_data"."contributors" ("cntrb_id") ON DELETE NO ACTION ON UPDATE NO ACTION; -ALTER TABLE IF EXISTS "augur_data"."pull_request_repo" ADD CONSTRAINT "fk_pull_request_repo_pull_request_meta_1" FOREIGN KEY ("pr_repo_meta_id") REFERENCES "augur_data"."pull_request_meta" ("pr_repo_meta_id") ON DELETE NO ACTION ON UPDATE NO ACTION; -ALTER TABLE IF EXISTS "augur_data"."pull_request_reviewers" ADD CONSTRAINT "fk_pull_request_reviewers_contributors_1" FOREIGN KEY ("cntrb_id") REFERENCES "augur_data"."contributors" ("cntrb_id") ON DELETE NO ACTION ON UPDATE NO ACTION; -ALTER TABLE IF EXISTS "augur_data"."pull_request_reviewers" ADD CONSTRAINT "fk_pull_request_reviewers_pull_requests_1" FOREIGN KEY ("pull_request_id") REFERENCES "augur_data"."pull_requests" ("pull_request_id") ON DELETE NO ACTION ON UPDATE NO ACTION; -ALTER TABLE IF EXISTS "augur_data"."pull_request_teams" ADD CONSTRAINT "fk_pull_request_teams_pull_requests_1" FOREIGN KEY ("pull_request_id") REFERENCES "augur_data"."pull_requests" ("pull_request_id") ON DELETE NO ACTION ON UPDATE NO ACTION; -ALTER TABLE IF EXISTS "augur_data"."pull_requests" ADD CONSTRAINT "fk_pull_requests_pull_request_meta_1" FOREIGN KEY ("pr_meta_head_id") REFERENCES "augur_data"."pull_request_meta" ("pr_repo_meta_id") ON DELETE NO ACTION ON UPDATE NO ACTION; -ALTER TABLE IF EXISTS "augur_data"."pull_requests" ADD CONSTRAINT "fk_pull_requests_pull_request_meta_2" FOREIGN KEY ("pr_meta_base_id") REFERENCES "augur_data"."pull_request_meta" ("pr_repo_meta_id") ON DELETE NO ACTION ON UPDATE NO ACTION; -ALTER TABLE IF EXISTS "augur_data"."pull_requests" ADD CONSTRAINT "fk_pull_requests_repo_1" FOREIGN KEY ("repo_id") REFERENCES "augur_data"."repo" ("repo_id") ON DELETE NO ACTION ON UPDATE NO ACTION; -ALTER TABLE IF EXISTS "augur_data"."releases" ADD CONSTRAINT "fk_releases_repo_1" FOREIGN KEY ("repo_id") REFERENCES "augur_data"."repo" ("repo_id") ON DELETE NO ACTION ON UPDATE NO ACTION; -ALTER TABLE IF EXISTS "augur_data"."repo" ADD CONSTRAINT "fk_repo_repo_groups_1" FOREIGN KEY ("repo_group_id") REFERENCES "augur_data"."repo_groups" ("repo_group_id") ON DELETE NO ACTION ON UPDATE NO ACTION; -COMMENT ON CONSTRAINT "fk_repo_repo_groups_1" ON "augur_data"."repo" IS 'Repo_groups cardinality set to one and only one because, although in theory there could be more than one repo group for a repo, this might create dependecies in hosted situation that we do not want to live with. '; -ALTER TABLE IF EXISTS "augur_data"."repo_badging" ADD CONSTRAINT "fk_repo_badging_repo_1" FOREIGN KEY ("repo_id") REFERENCES "augur_data"."repo" ("repo_id") ON DELETE NO ACTION ON UPDATE NO ACTION; -ALTER TABLE IF EXISTS "augur_data"."repo_cluster_messages" ADD CONSTRAINT "fk_repo_cluster_messages_repo_1" FOREIGN KEY ("repo_id") REFERENCES "augur_data"."repo" ("repo_id"); -ALTER TABLE IF EXISTS "augur_data"."repo_group_insights" ADD CONSTRAINT "fk_repo_group_insights_repo_groups_1" FOREIGN KEY ("repo_group_id") REFERENCES "augur_data"."repo_groups" ("repo_group_id") ON DELETE NO ACTION ON UPDATE NO ACTION; -ALTER TABLE IF EXISTS "augur_data"."repo_groups_list_serve" ADD CONSTRAINT "fk_repo_groups_list_serve_repo_groups_1" FOREIGN KEY ("repo_group_id") REFERENCES "augur_data"."repo_groups" ("repo_group_id") ON DELETE NO ACTION ON UPDATE NO ACTION; -ALTER TABLE IF EXISTS "augur_data"."repo_info" ADD CONSTRAINT "fk_repo_info_repo_1" FOREIGN KEY ("repo_id") REFERENCES "augur_data"."repo" ("repo_id") ON DELETE NO ACTION ON UPDATE NO ACTION; -ALTER TABLE IF EXISTS "augur_data"."repo_insights" ADD CONSTRAINT "fk_repo_insights_repo_1" FOREIGN KEY ("repo_id") REFERENCES "augur_data"."repo" ("repo_id") ON DELETE NO ACTION ON UPDATE NO ACTION; -ALTER TABLE IF EXISTS "augur_data"."repo_insights_records" ADD CONSTRAINT "repo_id_ref" FOREIGN KEY ("repo_id") REFERENCES "augur_data"."repo" ("repo_id") ON DELETE SET NULL ON UPDATE CASCADE; -ALTER TABLE IF EXISTS "augur_data"."repo_labor" ADD CONSTRAINT "fk_repo_labor_repo_1" FOREIGN KEY ("repo_id") REFERENCES "augur_data"."repo" ("repo_id") ON DELETE NO ACTION ON UPDATE NO ACTION; -ALTER TABLE IF EXISTS "augur_data"."repo_meta" ADD CONSTRAINT "fk_repo_meta_repo_1" FOREIGN KEY ("repo_id") REFERENCES "augur_data"."repo" ("repo_id") ON DELETE NO ACTION ON UPDATE NO ACTION; -ALTER TABLE IF EXISTS "augur_data"."repo_sbom_scans" ADD CONSTRAINT "repo_linker_sbom" FOREIGN KEY ("repo_id") REFERENCES "augur_data"."repo" ("repo_id") ON DELETE CASCADE ON UPDATE CASCADE; -ALTER TABLE IF EXISTS "augur_data"."repo_stats" ADD CONSTRAINT "fk_repo_stats_repo_1" FOREIGN KEY ("repo_id") REFERENCES "augur_data"."repo" ("repo_id") ON DELETE NO ACTION ON UPDATE NO ACTION; -ALTER TABLE IF EXISTS "augur_data"."repo_test_coverage" ADD CONSTRAINT "fk_repo_test_coverage_repo_1" FOREIGN KEY ("repo_id") REFERENCES "augur_data"."repo" ("repo_id") ON DELETE NO ACTION ON UPDATE NO ACTION; -ALTER TABLE IF EXISTS "augur_data"."repo_topic" ADD CONSTRAINT "fk_repo_topic_repo_1" FOREIGN KEY ("repo_id") REFERENCES "augur_data"."repo" ("repo_id"); -ALTER TABLE IF EXISTS "augur_data"."topic_words" ADD CONSTRAINT "fk_topic_words_repo_topic_1" FOREIGN KEY ("topic_id") REFERENCES "augur_data"."repo_topic" ("repo_topic_id"); -ALTER TABLE IF EXISTS "spdx"."annotations" ADD CONSTRAINT "annotations_annotation_type_id_fkey" FOREIGN KEY ("annotation_type_id") REFERENCES "spdx"."annotation_types" ("annotation_type_id") ON DELETE NO ACTION ON UPDATE NO ACTION; -ALTER TABLE IF EXISTS "spdx"."annotations" ADD CONSTRAINT "annotations_creator_id_fkey" FOREIGN KEY ("creator_id") REFERENCES "spdx"."creators" ("creator_id") ON DELETE NO ACTION ON UPDATE NO ACTION; -ALTER TABLE IF EXISTS "spdx"."annotations" ADD CONSTRAINT "annotations_document_id_fkey" FOREIGN KEY ("document_id") REFERENCES "spdx"."documents" ("document_id") ON DELETE NO ACTION ON UPDATE NO ACTION; -ALTER TABLE IF EXISTS "spdx"."annotations" ADD CONSTRAINT "annotations_identifier_id_fkey" FOREIGN KEY ("identifier_id") REFERENCES "spdx"."identifiers" ("identifier_id") ON DELETE NO ACTION ON UPDATE NO ACTION; -ALTER TABLE IF EXISTS "spdx"."creators" ADD CONSTRAINT "creators_creator_type_id_fkey" FOREIGN KEY ("creator_type_id") REFERENCES "spdx"."creator_types" ("creator_type_id") ON DELETE NO ACTION ON UPDATE NO ACTION; -ALTER TABLE IF EXISTS "spdx"."documents" ADD CONSTRAINT "documents_data_license_id_fkey" FOREIGN KEY ("data_license_id") REFERENCES "spdx"."licenses" ("license_id") ON DELETE NO ACTION ON UPDATE NO ACTION; -ALTER TABLE IF EXISTS "spdx"."documents" ADD CONSTRAINT "documents_document_namespace_id_fkey" FOREIGN KEY ("document_namespace_id") REFERENCES "spdx"."document_namespaces" ("document_namespace_id") ON DELETE NO ACTION ON UPDATE NO ACTION; -ALTER TABLE IF EXISTS "spdx"."documents" ADD CONSTRAINT "documents_package_id_fkey" FOREIGN KEY ("package_id") REFERENCES "spdx"."packages" ("package_id") ON DELETE NO ACTION ON UPDATE NO ACTION; -ALTER TABLE IF EXISTS "spdx"."documents_creators" ADD CONSTRAINT "documents_creators_creator_id_fkey" FOREIGN KEY ("creator_id") REFERENCES "spdx"."creators" ("creator_id") ON DELETE NO ACTION ON UPDATE NO ACTION; -ALTER TABLE IF EXISTS "spdx"."documents_creators" ADD CONSTRAINT "documents_creators_document_id_fkey" FOREIGN KEY ("document_id") REFERENCES "spdx"."documents" ("document_id") ON DELETE NO ACTION ON UPDATE NO ACTION; -ALTER TABLE IF EXISTS "spdx"."external_refs" ADD CONSTRAINT "external_refs_document_id_fkey" FOREIGN KEY ("document_id") REFERENCES "spdx"."documents" ("document_id") ON DELETE NO ACTION ON UPDATE NO ACTION; -ALTER TABLE IF EXISTS "spdx"."external_refs" ADD CONSTRAINT "external_refs_document_namespace_id_fkey" FOREIGN KEY ("document_namespace_id") REFERENCES "spdx"."document_namespaces" ("document_namespace_id") ON DELETE NO ACTION ON UPDATE NO ACTION; -ALTER TABLE IF EXISTS "spdx"."file_contributors" ADD CONSTRAINT "file_contributors_file_id_fkey" FOREIGN KEY ("file_id") REFERENCES "spdx"."files" ("file_id") ON DELETE NO ACTION ON UPDATE NO ACTION; -ALTER TABLE IF EXISTS "spdx"."files_licenses" ADD CONSTRAINT "files_licenses_file_id_fkey" FOREIGN KEY ("file_id") REFERENCES "spdx"."files" ("file_id") ON DELETE NO ACTION ON UPDATE NO ACTION; -ALTER TABLE IF EXISTS "spdx"."files_licenses" ADD CONSTRAINT "files_licenses_license_id_fkey" FOREIGN KEY ("license_id") REFERENCES "spdx"."licenses" ("license_id") ON DELETE NO ACTION ON UPDATE NO ACTION; -ALTER TABLE IF EXISTS "spdx"."files_scans" ADD CONSTRAINT "files_scans_file_id_fkey" FOREIGN KEY ("file_id") REFERENCES "spdx"."files" ("file_id") ON DELETE NO ACTION ON UPDATE NO ACTION; -ALTER TABLE IF EXISTS "spdx"."files_scans" ADD CONSTRAINT "files_scans_scanner_id_fkey" FOREIGN KEY ("scanner_id") REFERENCES "spdx"."scanners" ("scanner_id") ON DELETE NO ACTION ON UPDATE NO ACTION; -ALTER TABLE IF EXISTS "spdx"."identifiers" ADD CONSTRAINT "identifiers_document_id_fkey" FOREIGN KEY ("document_id") REFERENCES "spdx"."documents" ("document_id") ON DELETE NO ACTION ON UPDATE NO ACTION; -ALTER TABLE IF EXISTS "spdx"."identifiers" ADD CONSTRAINT "identifiers_document_namespace_id_fkey" FOREIGN KEY ("document_namespace_id") REFERENCES "spdx"."document_namespaces" ("document_namespace_id") ON DELETE NO ACTION ON UPDATE NO ACTION; -ALTER TABLE IF EXISTS "spdx"."identifiers" ADD CONSTRAINT "identifiers_package_file_id_fkey" FOREIGN KEY ("package_file_id") REFERENCES "spdx"."packages_files" ("package_file_id") ON DELETE NO ACTION ON UPDATE NO ACTION; -ALTER TABLE IF EXISTS "spdx"."identifiers" ADD CONSTRAINT "identifiers_package_id_fkey" FOREIGN KEY ("package_id") REFERENCES "spdx"."packages" ("package_id") ON DELETE NO ACTION ON UPDATE NO ACTION; -ALTER TABLE IF EXISTS "spdx"."packages" ADD CONSTRAINT "fk_package_packages_files" FOREIGN KEY ("ver_code_excluded_file_id") REFERENCES "spdx"."packages_files" ("package_file_id") ON DELETE NO ACTION ON UPDATE NO ACTION; -ALTER TABLE IF EXISTS "spdx"."packages" ADD CONSTRAINT "packages_concluded_license_id_fkey" FOREIGN KEY ("concluded_license_id") REFERENCES "spdx"."licenses" ("license_id") ON DELETE NO ACTION ON UPDATE NO ACTION; -ALTER TABLE IF EXISTS "spdx"."packages" ADD CONSTRAINT "packages_declared_license_id_fkey" FOREIGN KEY ("declared_license_id") REFERENCES "spdx"."licenses" ("license_id") ON DELETE NO ACTION ON UPDATE NO ACTION; -ALTER TABLE IF EXISTS "spdx"."packages" ADD CONSTRAINT "packages_originator_id_fkey" FOREIGN KEY ("originator_id") REFERENCES "spdx"."creators" ("creator_id") ON DELETE NO ACTION ON UPDATE NO ACTION; -ALTER TABLE IF EXISTS "spdx"."packages" ADD CONSTRAINT "packages_supplier_id_fkey" FOREIGN KEY ("supplier_id") REFERENCES "spdx"."creators" ("creator_id") ON DELETE NO ACTION ON UPDATE NO ACTION; -ALTER TABLE IF EXISTS "spdx"."packages_files" ADD CONSTRAINT "fk_package_files_packages" FOREIGN KEY ("package_id") REFERENCES "spdx"."packages" ("package_id") ON DELETE NO ACTION ON UPDATE NO ACTION; -ALTER TABLE IF EXISTS "spdx"."packages_files" ADD CONSTRAINT "packages_files_concluded_license_id_fkey" FOREIGN KEY ("concluded_license_id") REFERENCES "spdx"."licenses" ("license_id") ON DELETE NO ACTION ON UPDATE NO ACTION; -ALTER TABLE IF EXISTS "spdx"."packages_files" ADD CONSTRAINT "packages_files_file_id_fkey" FOREIGN KEY ("file_id") REFERENCES "spdx"."files" ("file_id") ON DELETE NO ACTION ON UPDATE NO ACTION; -ALTER TABLE IF EXISTS "spdx"."packages_scans" ADD CONSTRAINT "packages_scans_package_id_fkey" FOREIGN KEY ("package_id") REFERENCES "spdx"."packages" ("package_id") ON DELETE NO ACTION ON UPDATE NO ACTION; -ALTER TABLE IF EXISTS "spdx"."packages_scans" ADD CONSTRAINT "packages_scans_scanner_id_fkey" FOREIGN KEY ("scanner_id") REFERENCES "spdx"."scanners" ("scanner_id") ON DELETE NO ACTION ON UPDATE NO ACTION; -ALTER TABLE IF EXISTS "spdx"."relationships" ADD CONSTRAINT "relationships_left_identifier_id_fkey" FOREIGN KEY ("left_identifier_id") REFERENCES "spdx"."identifiers" ("identifier_id") ON DELETE NO ACTION ON UPDATE NO ACTION; -ALTER TABLE IF EXISTS "spdx"."relationships" ADD CONSTRAINT "relationships_relationship_type_id_fkey" FOREIGN KEY ("relationship_type_id") REFERENCES "spdx"."relationship_types" ("relationship_type_id") ON DELETE NO ACTION ON UPDATE NO ACTION; -ALTER TABLE IF EXISTS "spdx"."relationships" ADD CONSTRAINT "relationships_right_identifier_id_fkey" FOREIGN KEY ("right_identifier_id") REFERENCES "spdx"."identifiers" ("identifier_id") ON DELETE NO ACTION ON UPDATE NO ACTION; - -INSERT INTO "augur_operations"."augur_settings" set value = 31 where setting = 'augur_data_version'; - -CREATE TABLE "augur_data"."pull_request_analysis" ( - "pull_request_analysis_id" serial8, - "pull_request_id" int8, - "merge_probability" float8, - "mechanism" varchar, - "tool_source" varchar, - "tool_version" varchar, - "data_source" varchar, - "data_collection_date" timestamptz NOT NULL DEFAULT CURRENT_TIMESTAMP, - PRIMARY KEY ("pull_request_analysis_id") -) -; - -ALTER TABLE "augur_data"."pull_request_analysis" OWNER TO "augur"; - -COMMENT ON COLUMN "augur_data"."pull_request_analysis"."pull_request_id" IS 'It would be better if the pull request worker is run first to fetch the latest PRs before analyzing'; - -COMMENT ON COLUMN "augur_data"."pull_request_analysis"."merge_probability" IS 'Indicates the probability of the PR being merged'; - -COMMENT ON COLUMN "augur_data"."pull_request_analysis"."mechanism" IS 'the ML model used for prediction (It is XGBoost Classifier at present)'; - -ALTER TABLE "augur_data"."pull_request_analysis" ADD CONSTRAINT "fk_pull_request_analysis_pull_requests_1" FOREIGN KEY ("pull_request_id") REFERENCES "augur_data"."pull_requests" ("pull_request_id") ON DELETE CASCADE ON UPDATE CASCADE; - -CREATE INDEX CONCURRENTLY "probability_idx" ON "augur_data"."pull_request_analysis" USING btree ( - "merge_probability" DESC NULLS LAST -); - -CREATE INDEX CONCURRENTLY "pr_anal_idx" ON "augur_data"."pull_request_analysis" USING btree ( - "pull_request_id" -); - -update "augur_operations"."augur_settings" set value = 32 where setting = 'augur_data_version'; - - --- # Pull request commit updates -ALTER TABLE "augur_data"."pull_request_commits" ADD COLUMN "pr_cmt_author_cntrb_id" int8; -ALTER TABLE "augur_data"."pull_request_commits" ADD COLUMN "pr_cmt_timestamp" timestamp(0); -ALTER TABLE "augur_data"."pull_request_commits" ADD COLUMN "pr_cmt_author_email" varchar COLLATE "pg_catalog"."default"; - -update "augur_operations"."augur_settings" set value = 33 where setting = 'augur_data_version'; - - --- # Pull request commit updates -update "augur_operations"."augur_settings" set value = 34 where setting = 'augur_data_version'; - - --- Adding GitLab Platform -INSERT INTO "augur_data"."platform" ("pltfrm_id", "pltfrm_name", "pltfrm_version", "pltfrm_release_date", "tool_source", "tool_version", "data_source", "data_collection_date") VALUES (25151, 'GitLab', '3', '2020-12-27', 'Manual Entry', 'Sean Goggins', 'GitLab', '2020-12-27 16:07:20'); --- # Pull request commit updates -update "augur_operations"."augur_settings" set value = 35 where setting = 'augur_data_version'; - - -ALTER TABLE "augur_data"."pull_request_reviews" ALTER COLUMN "pr_review_author_association" TYPE varchar COLLATE "pg_catalog"."default"; - -ALTER TABLE "augur_data"."pull_request_reviews" ALTER COLUMN "pr_review_state" TYPE varchar COLLATE "pg_catalog"."default"; - -ALTER TABLE "augur_data"."pull_request_reviews" ALTER COLUMN "pr_review_body" TYPE varchar COLLATE "pg_catalog"."default"; - -ALTER TABLE "augur_data"."pull_request_reviews" ALTER COLUMN "pr_review_node_id" TYPE varchar COLLATE "pg_catalog"."default"; - -ALTER TABLE "augur_data"."pull_request_reviews" ALTER COLUMN "pr_review_html_url" TYPE varchar COLLATE "pg_catalog"."default"; - -ALTER TABLE "augur_data"."pull_request_reviews" ALTER COLUMN "pr_review_pull_request_url" TYPE varchar COLLATE "pg_catalog"."default"; - -ALTER TABLE "augur_data"."pull_request_reviews" ALTER COLUMN "pr_review_commit_id" TYPE varchar COLLATE "pg_catalog"."default"; - -ALTER TABLE "augur_data"."pull_request_reviews" ALTER COLUMN "tool_source" TYPE varchar COLLATE "pg_catalog"."default"; - -ALTER TABLE "augur_data"."pull_request_reviews" ALTER COLUMN "tool_version" TYPE varchar COLLATE "pg_catalog"."default"; - -ALTER TABLE "augur_data"."pull_request_reviews" ALTER COLUMN "data_source" TYPE varchar COLLATE "pg_catalog"."default"; - - - -update "augur_operations"."augur_settings" set value = 38 where setting = 'augur_data_version'; - - -ALTER TABLE "augur_data"."pull_request_commits" DROP CONSTRAINT "fk_pull_request_commits_pull_requests_1"; - -ALTER TABLE "augur_data"."pull_request_events" DROP CONSTRAINT "fk_pull_request_events_pull_requests_1"; - -ALTER TABLE "augur_data"."pull_request_files" DROP CONSTRAINT "fk_pull_request_commits_pull_requests_1"; - -ALTER TABLE "augur_data"."pull_request_labels" DROP CONSTRAINT "fk_pull_request_labels_pull_requests_1"; - -ALTER TABLE "augur_data"."pull_request_message_ref" DROP CONSTRAINT "fk_pull_request_message_ref_pull_requests_1"; - -ALTER TABLE "augur_data"."pull_request_message_ref" DROP CONSTRAINT "fk_pull_request_message_ref_message_1"; - -ALTER TABLE "augur_data"."pull_request_meta" DROP CONSTRAINT "fk_pull_request_meta_pull_requests_1"; - -ALTER TABLE "augur_data"."pull_request_repo" DROP CONSTRAINT "fk_pull_request_repo_pull_request_meta_1"; - -ALTER TABLE "augur_data"."pull_request_review_message_ref" DROP CONSTRAINT "fk_pull_request_review_message_ref_pull_request_reviews_1"; - -ALTER TABLE "augur_data"."pull_request_reviewers" DROP CONSTRAINT "fk_pull_request_reviewers_pull_requests_1"; - -ALTER TABLE "augur_data"."pull_request_reviews" DROP CONSTRAINT "fk_pull_request_reviews_pull_requests_1"; - -ALTER TABLE "augur_data"."pull_request_reviews" ALTER COLUMN "pr_review_author_association" TYPE varchar COLLATE "pg_catalog"."default"; - -ALTER TABLE "augur_data"."pull_request_reviews" ALTER COLUMN "pr_review_state" TYPE varchar COLLATE "pg_catalog"."default"; - -ALTER TABLE "augur_data"."pull_request_reviews" ALTER COLUMN "pr_review_body" TYPE varchar COLLATE "pg_catalog"."default"; - -ALTER TABLE "augur_data"."pull_request_reviews" ALTER COLUMN "pr_review_node_id" TYPE varchar COLLATE "pg_catalog"."default"; - -ALTER TABLE "augur_data"."pull_request_reviews" ALTER COLUMN "pr_review_html_url" TYPE varchar COLLATE "pg_catalog"."default"; - -ALTER TABLE "augur_data"."pull_request_reviews" ALTER COLUMN "pr_review_pull_request_url" TYPE varchar COLLATE "pg_catalog"."default"; - -ALTER TABLE "augur_data"."pull_request_reviews" ALTER COLUMN "pr_review_commit_id" TYPE varchar COLLATE "pg_catalog"."default"; - -ALTER TABLE "augur_data"."pull_request_reviews" ALTER COLUMN "tool_source" TYPE varchar COLLATE "pg_catalog"."default"; - -ALTER TABLE "augur_data"."pull_request_reviews" ALTER COLUMN "tool_version" TYPE varchar COLLATE "pg_catalog"."default"; - -ALTER TABLE "augur_data"."pull_request_reviews" ALTER COLUMN "data_source" TYPE varchar COLLATE "pg_catalog"."default"; - -ALTER TABLE "augur_data"."pull_request_teams" DROP CONSTRAINT "fk_pull_request_teams_pull_requests_1"; - -ALTER TABLE "augur_data"."pull_requests" DROP CONSTRAINT "fk_pull_requests_pull_request_meta_2"; - -ALTER TABLE "augur_data"."pull_requests" DROP CONSTRAINT "fk_pull_requests_pull_request_meta_1"; - -ALTER TABLE "augur_data"."pull_request_commits" ADD CONSTRAINT "fk_pull_request_commits_pull_requests_1" FOREIGN KEY ("pull_request_id") REFERENCES "augur_data"."pull_requests" ("pull_request_id") ON DELETE CASCADE ON UPDATE CASCADE; - -ALTER TABLE "augur_data"."pull_request_events" ADD CONSTRAINT "fk_pull_request_events_pull_requests_1" FOREIGN KEY ("pull_request_id") REFERENCES "augur_data"."pull_requests" ("pull_request_id") ON DELETE CASCADE ON UPDATE CASCADE; - -ALTER TABLE "augur_data"."pull_request_files" ADD CONSTRAINT "fk_pull_request_commits_pull_requests_1" FOREIGN KEY ("pull_request_id") REFERENCES "augur_data"."pull_requests" ("pull_request_id") ON DELETE CASCADE ON UPDATE CASCADE; - -ALTER TABLE "augur_data"."pull_request_labels" ADD CONSTRAINT "fk_pull_request_labels_pull_requests_1" FOREIGN KEY ("pull_request_id") REFERENCES "augur_data"."pull_requests" ("pull_request_id") ON DELETE CASCADE ON UPDATE CASCADE; - -ALTER TABLE "augur_data"."pull_request_message_ref" ADD CONSTRAINT "fk_pull_request_message_ref_message_1" FOREIGN KEY ("msg_id") REFERENCES "augur_data"."message" ("msg_id") ON DELETE CASCADE ON UPDATE CASCADE; - -ALTER TABLE "augur_data"."pull_request_message_ref" ADD CONSTRAINT "fk_pull_request_message_ref_pull_requests_1" FOREIGN KEY ("pull_request_id") REFERENCES "augur_data"."pull_requests" ("pull_request_id") ON DELETE CASCADE ON UPDATE CASCADE; - -ALTER TABLE "augur_data"."pull_request_meta" ADD CONSTRAINT "fk_pull_request_meta_pull_requests_1" FOREIGN KEY ("pull_request_id") REFERENCES "augur_data"."pull_requests" ("pull_request_id") ON DELETE CASCADE ON UPDATE CASCADE; - -ALTER TABLE "augur_data"."pull_request_repo" ADD CONSTRAINT "fk_pull_request_repo_pull_request_meta_1" FOREIGN KEY ("pr_repo_meta_id") REFERENCES "augur_data"."pull_request_meta" ("pr_repo_meta_id") ON DELETE CASCADE ON UPDATE CASCADE; - -ALTER TABLE "augur_data"."pull_request_review_message_ref" ADD CONSTRAINT "fk_pull_request_review_message_ref_pull_request_reviews_1" FOREIGN KEY ("pr_review_id") REFERENCES "augur_data"."pull_request_reviews" ("pr_review_id") ON DELETE CASCADE ON UPDATE CASCADE; - -ALTER TABLE "augur_data"."pull_request_reviewers" ADD CONSTRAINT "fk_pull_request_reviewers_pull_requests_1" FOREIGN KEY ("pull_request_id") REFERENCES "augur_data"."pull_requests" ("pull_request_id") ON DELETE CASCADE ON UPDATE CASCADE; - -ALTER TABLE "augur_data"."pull_request_reviews" ADD CONSTRAINT "fk_pull_request_reviews_pull_requests_1" FOREIGN KEY ("pull_request_id") REFERENCES "augur_data"."pull_requests" ("pull_request_id") ON DELETE CASCADE ON UPDATE CASCADE; - -ALTER TABLE "augur_data"."pull_request_teams" ADD CONSTRAINT "fk_pull_request_teams_pull_requests_1" FOREIGN KEY ("pull_request_id") REFERENCES "augur_data"."pull_requests" ("pull_request_id") ON DELETE CASCADE ON UPDATE CASCADE; - -ALTER TABLE "augur_data"."pull_requests" ADD CONSTRAINT "fk_pull_requests_pull_request_meta_1" FOREIGN KEY ("pr_meta_head_id") REFERENCES "augur_data"."pull_request_meta" ("pr_repo_meta_id") ON DELETE CASCADE ON UPDATE CASCADE; - -ALTER TABLE "augur_data"."pull_requests" ADD CONSTRAINT "fk_pull_requests_pull_request_meta_2" FOREIGN KEY ("pr_meta_base_id") REFERENCES "augur_data"."pull_request_meta" ("pr_repo_meta_id") ON DELETE CASCADE ON UPDATE CASCADE; - - - -update "augur_operations"."augur_settings" set value = 39 where setting = 'augur_data_version'; - - -COMMENT ON TABLE "augur_data"."contributor_repo" IS 'Developed in Partnership with Andrew Brain'; - -ALTER TABLE "augur_data"."contributor_repo" ADD COLUMN IF NOT EXISTS "repo_id" int8 NOT NULL; - -ALTER TABLE "augur_data"."contributor_repo" ADD COLUMN IF NOT EXISTS "repo_name" varchar COLLATE "pg_catalog"."default" NOT NULL; - -ALTER TABLE "augur_data"."contributor_repo" ADD COLUMN IF NOT EXISTS "event_id" int8 NOT NULL; - -ALTER TABLE "augur_data"."contributor_repo" ADD COLUMN IF NOT EXISTS "created_at" timestamp(0) NOT NULL; - -ALTER TABLE "augur_data"."contributors_aliases" DROP CONSTRAINT IF EXISTS "fk_contributors_aliases_contributors_1"; - -ALTER TABLE "augur_data"."message" DROP CONSTRAINT IF EXISTS "fk_message_repo_groups_list_serve_1"; - -ALTER TABLE "augur_data"."message" DROP CONSTRAINT IF EXISTS "fk_message_platform_1"; - -ALTER TABLE "augur_data"."message" DROP CONSTRAINT IF EXISTS "fk_message_contributors_1"; - -ALTER TABLE "augur_data"."pull_request_reviewers" DROP CONSTRAINT IF EXISTS "fk_pull_request_reviewers_contributors_1"; - -ALTER TABLE "augur_data"."pull_request_reviews" DROP CONSTRAINT IF EXISTS "fk_pull_request_reviews_contributors_1"; - -ALTER TABLE "augur_data"."pull_requests" DROP CONSTRAINT IF EXISTS "fk_pull_requests_repo_1"; - -ALTER TABLE "augur_data"."contributors_aliases" DROP CONSTRAINT IF EXISTS "fk_alias_id"; - -ALTER TABLE "augur_data"."pull_request_commits" DROP CONSTRAINT IF EXISTS "fk_pr_commit_cntrb_id"; - -ALTER TABLE "augur_data"."contributors_aliases" ADD CONSTRAINT "fk_alias_id" FOREIGN KEY ("cntrb_a_id") REFERENCES "augur_data"."contributors" ("cntrb_id") ON DELETE CASCADE ON UPDATE CASCADE NOT VALID; - -ALTER TABLE "augur_data"."contributors_aliases" ADD CONSTRAINT "fk_contributors_aliases_contributors_1" FOREIGN KEY ("cntrb_id") REFERENCES "augur_data"."contributors" ("cntrb_id") ON DELETE CASCADE ON UPDATE CASCADE NOT VALID; - -ALTER TABLE "augur_data"."message" ADD CONSTRAINT "fk_message_contributors_1" FOREIGN KEY ("cntrb_id") REFERENCES "augur_data"."contributors" ("cntrb_id") ON DELETE CASCADE ON UPDATE CASCADE NOT VALID; - -ALTER TABLE "augur_data"."message" ADD CONSTRAINT "fk_message_platform_1" FOREIGN KEY ("pltfrm_id") REFERENCES "augur_data"."platform" ("pltfrm_id") ON DELETE CASCADE ON UPDATE CASCADE NOT VALID; - -ALTER TABLE "augur_data"."message" ADD CONSTRAINT "fk_message_repo_groups_list_serve_1" FOREIGN KEY ("rgls_id") REFERENCES "augur_data"."repo_groups_list_serve" ("rgls_id") ON DELETE CASCADE ON UPDATE CASCADE NOT VALID; - -ALTER TABLE "augur_data"."pull_request_commits" ADD CONSTRAINT "fk_pr_commit_cntrb_id" FOREIGN KEY ("pr_cmt_author_cntrb_id") REFERENCES "augur_data"."contributors" ("cntrb_id") ON DELETE CASCADE ON UPDATE CASCADE NOT VALID; - -ALTER TABLE "augur_data"."pull_request_reviewers" ADD CONSTRAINT "fk_pull_request_reviewers_contributors_1" FOREIGN KEY ("cntrb_id") REFERENCES "augur_data"."contributors" ("cntrb_id") ON DELETE CASCADE ON UPDATE CASCADE NOT VALID; - -ALTER TABLE "augur_data"."pull_request_reviews" ADD CONSTRAINT "fk_pull_request_reviews_contributors_1" FOREIGN KEY ("cntrb_id") REFERENCES "augur_data"."contributors" ("cntrb_id") ON DELETE CASCADE ON UPDATE CASCADE NOT VALID; - -ALTER TABLE "augur_data"."pull_requests" ADD CONSTRAINT "fk_pr_contribs" FOREIGN KEY ("pr_augur_contributor_id") REFERENCES "augur_data"."contributors" ("cntrb_id") ON DELETE CASCADE ON UPDATE CASCADE NOT VALID; - -ALTER TABLE "augur_data"."pull_requests" ADD CONSTRAINT "fk_pull_requests_repo_1" FOREIGN KEY ("repo_id") REFERENCES "augur_data"."repo" ("repo_id") ON DELETE CASCADE ON UPDATE CASCADE NOT VALID; - -update "augur_operations"."augur_settings" set value = 40 where setting = 'augur_data_version'; - - -CREATE INDEX pull_requests_idx_repo_id_data_datex ON "augur_data"."pull_requests" (repo_id,data_collection_date); -CREATE INDEX repo_idx_repo_id_repo_namex ON "augur_data"."repo" (repo_id,repo_name); -CREATE INDEX repo_info_idx_repo_id_data_datex ON "augur_data"."repo_info" (repo_id,data_collection_date); -CREATE INDEX repo_info_idx_repo_id_data_date_1x ON "augur_data"."repo_info" (repo_id,data_collection_date); - -update "augur_operations"."augur_settings" set value = 41 where setting = 'augur_data_version'; - --- Update Repo Foreign Key -ALTER TABLE "augur_data"."repo" DROP CONSTRAINT "fk_repo_repo_groups_1"; - -ALTER TABLE "augur_data"."repo" ADD CONSTRAINT "fk_repo_repo_groups_1" FOREIGN KEY ("repo_group_id") REFERENCES "augur_data"."repo_groups" ("repo_group_id") ON DELETE NO ACTION ON UPDATE NO ACTION NOT VALID; - -COMMENT ON CONSTRAINT "fk_repo_repo_groups_1" ON "augur_data"."repo" IS 'Repo_groups cardinality set to one and only one because, although in theory there could be more than one repo group for a repo, this might create dependencies in hosted situation that we do not want to live with. '; - -ALTER TABLE "augur_data"."message" - ALTER COLUMN "data_collection_date" SET DEFAULT CURRENT_TIMESTAMP; - -update "augur_operations"."augur_settings" set value = 42 where setting = 'augur_data_version'; - --- Adding new contributors to the database - --- Adding new contributors to the database --- Adding new contributors to the database - --- Adding new contributors to the database - -BEGIN; -select setval('augur_data.contributor_affiliations_ca_id_seq', 34000, true); - -select nextval('augur_data.contributor_affiliations_ca_id_seq'::regclass); - - -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "ca_start_date", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_affiliation", "ca_active") VALUES (25222, 'venuvardhanreddytekula8@gmail.com', '1970-01-01', NULL, NULL, NULL, '2021-02-06 15:14:35', '2021-02-06 15:14:35', 'Google Summer of Code', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "ca_start_date", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_affiliation", "ca_active") VALUES (25221, 'nichols.keanu9@gmail.com', '1970-01-01', NULL, NULL, NULL, '2021-02-06 15:14:11', '2021-02-06 15:14:11', 'Google Summer of Code', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "ca_start_date", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_affiliation", "ca_active") VALUES (25220, 'ubuntu@ip-172-31-2-14.us-west-2.compute.internal', '1970-01-01', NULL, NULL, NULL, '2021-02-06 15:13:50', '2021-02-06 15:13:50', 'University of Missouri', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "ca_start_date", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_affiliation", "ca_active") VALUES (25219, 'kmlumbard@gmail.com', '1970-01-01', NULL, NULL, NULL, '2021-02-06 15:13:21', '2021-02-06 15:13:21', 'University of Nebraska-Omaha', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "ca_start_date", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_affiliation", "ca_active") VALUES (25218, 'jonah.zukosky@gmail.com', '1970-01-01', NULL, NULL, NULL, '2021-02-06 15:12:50', '2021-02-06 15:12:50', 'University of Missouri', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "ca_start_date", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_affiliation", "ca_active") VALUES (25217, 'pogayo17@alustudent.com', '1970-01-01', NULL, NULL, NULL, '2021-02-06 15:12:14', '2021-02-06 15:12:14', 'Google Summer of Code', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "ca_start_date", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_affiliation", "ca_active") VALUES (25216, 'mishrapratik356@gmail.com', '1970-01-01', NULL, NULL, NULL, '2021-02-06 15:11:23', '2021-02-06 15:11:23', 'Google Summer of Code', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "ca_start_date", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_affiliation", "ca_active") VALUES (25215, 'andrewbrain2019@gmail.com', '1970-01-01', NULL, NULL, NULL, '2021-02-06 15:10:42', '2021-02-06 15:10:42', 'University of Missouri', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "ca_start_date", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_affiliation", "ca_active") VALUES (25214, 'root@bing0ne.com', '1970-01-01', NULL, NULL, NULL, '2021-02-06 15:10:15', '2021-02-06 15:10:15', 'Google Summer of Code', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "ca_start_date", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_affiliation", "ca_active") VALUES (25213, 'gordonli@me.com', '1970-01-01', NULL, NULL, NULL, '2021-02-06 15:09:46', '2021-02-06 15:09:46', 'CHAOSS Community', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "ca_start_date", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_affiliation", "ca_active") VALUES (25212, 'ac.be', '1970-01-01', NULL, NULL, NULL, '2021-02-06 15:09:20', '2021-02-06 15:09:20', 'CHAOSS Community', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "ca_start_date", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_affiliation", "ca_active") VALUES (25211, 'shohanduttaroy99@gmail.com', '1970-01-01', NULL, NULL, NULL, '2021-02-06 15:08:56', '2021-02-06 15:08:56', 'Google Summer of Code', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "ca_start_date", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_affiliation", "ca_active") VALUES (25210, 'missouri.edu', '1970-01-01', NULL, NULL, NULL, '2021-02-06 15:08:27', '2021-02-06 15:08:27', 'University of Missouri', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "ca_start_date", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_affiliation", "ca_active") VALUES (25209, 'akarajgi0@gmail.com', '1970-01-01', NULL, NULL, NULL, '2021-02-06 15:07:11', '2021-02-06 15:07:11', 'Google Summer of Code', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "ca_start_date", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_affiliation", "ca_active") VALUES (25208, 'jacobeharding@gmail.com', '1970-01-01', NULL, NULL, NULL, '2021-02-06 15:06:45', '2021-02-06 15:06:45', 'CHAOSS Community', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "ca_start_date", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_affiliation", "ca_active") VALUES (25207, 'hacksmath@gmail.com', '1970-01-01', NULL, NULL, NULL, '2021-02-06 15:06:19', '2021-02-06 15:06:19', 'CHAOSS Community', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "ca_start_date", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_affiliation", "ca_active") VALUES (25206, 'benjaminparish628@gmail.com', '1970-01-01', NULL, NULL, NULL, '2021-02-06 15:05:48', '2021-02-06 15:05:48', 'CHAOSS Community', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "ca_start_date", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_affiliation", "ca_active") VALUES (25205, 'msnell@unomaha.edu', '1970-01-01', NULL, NULL, NULL, '2021-02-06 15:04:05', '2021-02-06 15:04:05', 'University of Nebraska-Omaha', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "ca_start_date", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_affiliation", "ca_active") VALUES (25204, 'aksharap.181it132@nitk.edu.in', '1970-01-01', NULL, NULL, NULL, '2021-02-06 14:10:03', '2021-02-06 14:10:03', 'Google Summer of Code', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "ca_start_date", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_affiliation", "ca_active") VALUES (25203, 'iyovcheva@vmware.com', '1970-01-01', NULL, NULL, NULL, '2021-02-06 14:09:36', '2021-02-06 14:09:36', 'VMWare', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "ca_start_date", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_affiliation", "ca_active") VALUES (25202, 'maximumbalk@gmail.com', '1970-01-01', NULL, NULL, NULL, '2021-02-06 14:09:15', '2021-02-06 14:09:15', 'Google Summer of Code', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "ca_start_date", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_affiliation", "ca_active") VALUES (25201, '43684300+pratikmishra356@users.noreply.github.com', '1970-01-01', NULL, NULL, NULL, '2021-02-06 14:08:34', '2021-02-06 14:08:34', 'Google Summer of Code', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "ca_start_date", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_affiliation", "ca_active") VALUES (25200, 'abhinavbajpai2012@gmail.com', '1970-01-01', NULL, NULL, NULL, '2021-02-06 14:08:01', '2021-02-06 14:08:01', 'Google Summer of Code', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "ca_start_date", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_affiliation", "ca_active") VALUES (25188, 'ortonpaul18@gmail.com', '1970-01-01', NULL, NULL, NULL, '2021-02-06 14:05:58', '2021-02-06 14:05:58', 'Google Summer of Code', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "ca_start_date", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_affiliation", "ca_active") VALUES (25187, 'linkgeorg@gmail.com', '1970-01-01', NULL, NULL, NULL, '2021-02-06 14:05:29', '2021-02-06 14:05:29', 'University of Nebraska-Omaha', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "ca_start_date", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_affiliation", "ca_active") VALUES (25186, 'parth261297@gmail.com', '1970-01-01', NULL, NULL, NULL, '2021-02-06 14:05:02', '2021-02-06 14:05:02', 'Google Summer of Code', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "ca_start_date", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_affiliation", "ca_active") VALUES (25185, 'users.noreply.github.com', '1970-01-01', NULL, NULL, NULL, '2021-02-06 14:04:39', '2021-02-06 14:04:39', 'CHAOSS Community', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "ca_start_date", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_affiliation", "ca_active") VALUES (25184, 'foundjem@users.noreply.github.com', '1970-01-01', NULL, NULL, NULL, '2021-02-06 14:04:12', '2021-02-06 14:04:12', 'CHAOSS Community', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "ca_start_date", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_affiliation", "ca_active") VALUES (25183, 'gsyc.es', '1970-01-01', NULL, NULL, NULL, '2021-02-06 14:03:39', '2021-02-06 14:03:39', 'Bitergia', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "ca_start_date", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_affiliation", "ca_active") VALUES (25182, 'harshalmittal4@gmail.com', '1970-01-01', NULL, NULL, NULL, '2021-02-06 14:03:21', '2021-02-06 14:03:21', 'Bitergia', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "ca_start_date", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_affiliation", "ca_active") VALUES (25181, '31676518+tretrue@users.noreply.github.com', '1970-01-01', NULL, NULL, NULL, '2021-02-06 14:02:57', '2021-02-06 14:02:57', 'University of Missouri', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "ca_start_date", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_affiliation", "ca_active") VALUES (25180, 'klumbard@unomaha.edu', '1970-01-01', NULL, NULL, NULL, '2021-02-06 14:02:28', '2021-02-06 14:02:28', 'University of Nebraska-Omaha', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "ca_start_date", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_affiliation", "ca_active") VALUES (25179, 'gabe.heim@yahoo.com', '1970-01-01', NULL, NULL, NULL, '2021-02-06 14:01:55', '2021-02-06 14:01:55', 'University of Missouri', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "ca_start_date", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_affiliation", "ca_active") VALUES (25178, 'ccarterlandis@pm.me', '1970-01-01', NULL, NULL, NULL, '2021-02-06 14:01:34', '2021-02-06 14:01:34', 'University of Missouri', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "ca_start_date", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_affiliation", "ca_active") VALUES (25177, 'ccarterlandis@gmail.com', '1970-01-01', NULL, NULL, NULL, '2021-02-06 14:01:13', '2021-02-06 14:01:13', 'University of Missouri', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "ca_start_date", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_affiliation", "ca_active") VALUES (25176, 'abuhman@users.noreply.github.com', '1970-01-01', NULL, NULL, NULL, '2021-02-06 14:00:32', '2021-02-06 14:00:32', 'University of Nebraska-Omaha', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "ca_start_date", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_affiliation", "ca_active") VALUES (25175, 'gogginss@missouri.edu', '1970-01-01', NULL, NULL, NULL, '2021-02-06 14:00:06', '2021-02-06 14:00:06', 'University of Missouri', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "ca_start_date", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_affiliation", "ca_active") VALUES (25174, 'spencerrrobinson@unomaha.edu', '1970-01-01', NULL, NULL, NULL, '2021-02-06 13:59:19', '2021-02-06 13:59:19', 'University of Nebraska-Omaha', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "ca_start_date", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_affiliation", "ca_active") VALUES (25173, 'germonprez@gmail.com', '1970-01-01', NULL, NULL, NULL, '2021-02-06 13:58:48', '2021-02-06 13:58:48', 'University of Nebraska-Omaha', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "ca_start_date", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_affiliation", "ca_active") VALUES (25172, 'derek@howderek.com', '1970-01-01', NULL, NULL, NULL, '2021-02-06 13:57:56', '2021-02-06 13:57:56', 'Lawrence Livermore National Lab', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "ca_start_date", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_affiliation", "ca_active") VALUES (25171, 'doombreakr@gmail.com', '1970-01-01', NULL, NULL, NULL, '2021-02-06 13:57:20', '2021-02-06 13:57:20', 'Lawrence Livermore National Lab', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "ca_start_date", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_affiliation", "ca_active") VALUES (25170, 'cmehil.warn@gmail.com', '2016-05-06', 'load', '1.0', 'load', '2021-02-06 13:55:16', '2021-02-06 13:56:46', 'University of Nebraska-Omaha', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_start_date", "ca_affiliation", "ca_active") VALUES (24189, 'jschnake@vmware.com', 'Helper Script', NULL, 'Dawn''s vmware_mapping JSON', '2020-04-28 18:52:49', '2020-04-28 18:52:49', '1970-01-01', 'VMware', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_start_date", "ca_affiliation", "ca_active") VALUES (24190, 'schnake.john@gmail.com', 'Helper Script', NULL, 'Dawn''s vmware_mapping JSON', '2020-04-28 18:52:49', '2020-04-28 18:52:49', '1970-01-01', 'VMware', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_start_date", "ca_affiliation", "ca_active") VALUES (24191, 'bmcerlean@vmware.com', 'Helper Script', NULL, 'Dawn''s vmware_mapping JSON', '2020-04-28 18:52:49', '2020-04-28 18:52:49', '1970-01-01', 'VMware', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_start_date", "ca_affiliation", "ca_active") VALUES (24192, 'bridget@bitnami.com', 'Helper Script', NULL, 'Dawn''s vmware_mapping JSON', '2020-04-28 18:52:49', '2020-04-28 18:52:49', '1970-01-01', 'VMware', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_start_date", "ca_affiliation", "ca_active") VALUES (24193, 'ashish.amarnath@gmail.com', 'Helper Script', NULL, 'Dawn''s vmware_mapping JSON', '2020-04-28 18:52:49', '2020-04-28 18:52:49', '1970-01-01', 'VMware', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_start_date", "ca_affiliation", "ca_active") VALUES (24194, 'ashisham@vmware.com', 'Helper Script', NULL, 'Dawn''s vmware_mapping JSON', '2020-04-28 18:52:49', '2020-04-28 18:52:49', '1970-01-01', 'VMware', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_start_date", "ca_affiliation", "ca_active") VALUES (24195, 'gus@inodes.org', 'Helper Script', NULL, 'Dawn''s vmware_mapping JSON', '2020-04-28 18:52:49', '2020-04-28 18:52:49', '1970-01-01', 'VMware', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_start_date", "ca_affiliation", "ca_active") VALUES (24196, 'felipe.alfaro@gmail.com', 'Helper Script', NULL, 'Dawn''s vmware_mapping JSON', '2020-04-28 18:52:49', '2020-04-28 18:52:49', '1970-01-01', 'VMware', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_start_date", "ca_affiliation", "ca_active") VALUES (24197, 'sameer@damagehead.com', 'Helper Script', NULL, 'Dawn''s vmware_mapping JSON', '2020-04-28 18:52:49', '2020-04-28 18:52:49', '1970-01-01', 'VMware', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_start_date", "ca_affiliation", "ca_active") VALUES (24198, 'sameer@bitnami.com', 'Helper Script', NULL, 'Dawn''s vmware_mapping JSON', '2020-04-28 18:52:49', '2020-04-28 18:52:49', '1970-01-01', 'VMware', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_start_date", "ca_affiliation", "ca_active") VALUES (24199, 'sameersbn@Sameers-MacBook-Pro.local', 'Helper Script', NULL, 'Dawn''s vmware_mapping JSON', '2020-04-28 18:52:49', '2020-04-28 18:52:49', '1970-01-01', 'VMware', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_start_date", "ca_affiliation", "ca_active") VALUES (24200, 'adnan@bitnami.com', 'Helper Script', NULL, 'Dawn''s vmware_mapping JSON', '2020-04-28 18:52:49', '2020-04-28 18:52:49', '1970-01-01', 'VMware', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_start_date", "ca_affiliation", "ca_active") VALUES (24201, 'adnan@prydoni.us', 'Helper Script', NULL, 'Dawn''s vmware_mapping JSON', '2020-04-28 18:52:49', '2020-04-28 18:52:49', '1970-01-01', 'VMware', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_start_date", "ca_affiliation", "ca_active") VALUES (24202, 'adnan@adnan-bitnami.local', 'Helper Script', NULL, 'Dawn''s vmware_mapping JSON', '2020-04-28 18:52:49', '2020-04-28 18:52:49', '1970-01-01', 'VMware', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_start_date", "ca_affiliation", "ca_active") VALUES (24203, 'apulido@gmail.com', 'Helper Script', NULL, 'Dawn''s vmware_mapping JSON', '2020-04-28 18:52:49', '2020-04-28 18:52:49', '1970-01-01', 'VMware', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_start_date", "ca_affiliation", "ca_active") VALUES (24204, 'ara@ubuntu.com', 'Helper Script', NULL, 'Dawn''s vmware_mapping JSON', '2020-04-28 18:52:49', '2020-04-28 18:52:49', '1970-01-01', 'VMware', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_start_date", "ca_affiliation", "ca_active") VALUES (24205, 'bridgetmcerlean@gmail.com', 'Helper Script', NULL, 'Dawn''s vmware_mapping JSON', '2020-04-28 18:52:49', '2020-04-28 18:52:49', '1970-01-01', 'VMware', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_start_date", "ca_affiliation", "ca_active") VALUES (24206, 'migmartri@gmail.com', 'Helper Script', NULL, 'Dawn''s vmware_mapping JSON', '2020-04-28 18:52:49', '2020-04-28 18:52:49', '1970-01-01', 'VMware', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_start_date", "ca_affiliation", "ca_active") VALUES (24207, 'miguel@bitnami.com', 'Helper Script', NULL, 'Dawn''s vmware_mapping JSON', '2020-04-28 18:52:49', '2020-04-28 18:52:49', '1970-01-01', 'VMware', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_start_date", "ca_affiliation", "ca_active") VALUES (24208, 'dbarranco@bitnami.com', 'Helper Script', NULL, 'Dawn''s vmware_mapping JSON', '2020-04-28 18:52:49', '2020-04-28 18:52:49', '1970-01-01', 'VMware', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_start_date", "ca_affiliation", "ca_active") VALUES (24209, 'jbianquetti@bitnami.com', 'Helper Script', NULL, 'Dawn''s vmware_mapping JSON', '2020-04-28 18:52:49', '2020-04-28 18:52:49', '1970-01-01', 'VMware', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_start_date", "ca_affiliation", "ca_active") VALUES (24210, 'jbianquetti-nami@users.noreply.github.com', 'Helper Script', NULL, 'Dawn''s vmware_mapping JSON', '2020-04-28 18:52:49', '2020-04-28 18:52:49', '1970-01-01', 'VMware', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_start_date", "ca_affiliation", "ca_active") VALUES (24211, 'andres.mgotor@gmail.com', 'Helper Script', NULL, 'Dawn''s vmware_mapping JSON', '2020-04-28 18:52:49', '2020-04-28 18:52:49', '1970-01-01', 'VMware', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_start_date", "ca_affiliation", "ca_active") VALUES (24212, 'andres@bitnami.com', 'Helper Script', NULL, 'Dawn''s vmware_mapping JSON', '2020-04-28 18:52:49', '2020-04-28 18:52:49', '1970-01-01', 'VMware', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_start_date", "ca_affiliation", "ca_active") VALUES (24213, 'juanjosec@gmail.com', 'Helper Script', NULL, 'Dawn''s vmware_mapping JSON', '2020-04-28 18:52:49', '2020-04-28 18:52:49', '1970-01-01', 'VMware', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_start_date", "ca_affiliation", "ca_active") VALUES (24214, 'containers@bitnami.com', 'Helper Script', NULL, 'Dawn''s vmware_mapping JSON', '2020-04-28 18:52:49', '2020-04-28 18:52:49', '1970-01-01', 'VMware', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_start_date", "ca_affiliation", "ca_active") VALUES (24215, 'bors\[bot\]@users.noreply.github.com', 'Helper Script', NULL, 'Dawn''s vmware_mapping JSON', '2020-04-28 18:52:49', '2020-04-28 18:52:49', '1970-01-01', 'VMware', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_start_date", "ca_affiliation", "ca_active") VALUES (24216, 'matt.goodall@gmail.com', 'Helper Script', NULL, 'Dawn''s vmware_mapping JSON', '2020-04-28 18:52:49', '2020-04-28 18:52:49', '1970-01-01', 'VMware', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_start_date", "ca_affiliation", "ca_active") VALUES (24217, 'j-fuentes@users.noreply.github.com', 'Helper Script', NULL, 'Dawn''s vmware_mapping JSON', '2020-04-28 18:52:49', '2020-04-28 18:52:49', '1970-01-01', 'VMware', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_start_date", "ca_affiliation", "ca_active") VALUES (24218, 'jfuentes@bitnami.com', 'Helper Script', NULL, 'Dawn''s vmware_mapping JSON', '2020-04-28 18:52:49', '2020-04-28 18:52:49', '1970-01-01', 'VMware', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_start_date", "ca_affiliation", "ca_active") VALUES (24219, 'mnelson@bitnami.com', 'Helper Script', NULL, 'Dawn''s vmware_mapping JSON', '2020-04-28 18:52:49', '2020-04-28 18:52:49', '1970-01-01', 'VMware', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_start_date", "ca_affiliation", "ca_active") VALUES (24220, 'mkm@bitnami.com', 'Helper Script', NULL, 'Dawn''s vmware_mapping JSON', '2020-04-28 18:52:49', '2020-04-28 18:52:49', '1970-01-01', 'VMware', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_start_date", "ca_affiliation", "ca_active") VALUES (24221, 'mmikulicic@gmail.com', 'Helper Script', NULL, 'Dawn''s vmware_mapping JSON', '2020-04-28 18:52:49', '2020-04-28 18:52:49', '1970-01-01', 'VMware', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_start_date", "ca_affiliation", "ca_active") VALUES (24222, 'james@jameswestby.net', 'Helper Script', NULL, 'Dawn''s vmware_mapping JSON', '2020-04-28 18:52:49', '2020-04-28 18:52:49', '1970-01-01', 'VMware', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_start_date", "ca_affiliation", "ca_active") VALUES (24223, 'stephen.stewart@carisenda.com', 'Helper Script', NULL, 'Dawn''s vmware_mapping JSON', '2020-04-28 18:52:49', '2020-04-28 18:52:49', '1970-01-01', 'VMware', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_start_date", "ca_affiliation", "ca_active") VALUES (24224, 'daniel.lopez@gmail.com', 'Helper Script', NULL, 'Dawn''s vmware_mapping JSON', '2020-04-28 18:52:49', '2020-04-28 18:52:49', '1970-01-01', 'VMware', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_start_date", "ca_affiliation", "ca_active") VALUES (24225, 'nomisbeme@users.noreply.github.com', 'Helper Script', NULL, 'Dawn''s vmware_mapping JSON', '2020-04-28 18:52:49', '2020-04-28 18:52:49', '1970-01-01', 'VMware', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_start_date", "ca_affiliation", "ca_active") VALUES (24226, 'marcos@bitnami.com', 'Helper Script', NULL, 'Dawn''s vmware_mapping JSON', '2020-04-28 18:52:49', '2020-04-28 18:52:49', '1970-01-01', 'VMware', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_start_date", "ca_affiliation", "ca_active") VALUES (24227, 'marcosbc@users.noreply.github.com', 'Helper Script', NULL, 'Dawn''s vmware_mapping JSON', '2020-04-28 18:52:49', '2020-04-28 18:52:49', '1970-01-01', 'VMware', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_start_date", "ca_affiliation", "ca_active") VALUES (24228, 'juan@bitnami.com', 'Helper Script', NULL, 'Dawn''s vmware_mapping JSON', '2020-04-28 18:52:49', '2020-04-28 18:52:49', '1970-01-01', 'VMware', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_start_date", "ca_affiliation", "ca_active") VALUES (24229, 'juan_ariza_cordoba@hotmail.com', 'Helper Script', NULL, 'Dawn''s vmware_mapping JSON', '2020-04-28 18:52:49', '2020-04-28 18:52:49', '1970-01-01', 'VMware', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_start_date", "ca_affiliation", "ca_active") VALUES (24230, 'jota@bitnami.com', 'Helper Script', NULL, 'Dawn''s vmware_mapping JSON', '2020-04-28 18:52:49', '2020-04-28 18:52:49', '1970-01-01', 'VMware', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_start_date", "ca_affiliation", "ca_active") VALUES (24231, 'jotamartos@gmail.com', 'Helper Script', NULL, 'Dawn''s vmware_mapping JSON', '2020-04-28 18:52:49', '2020-04-28 18:52:49', '1970-01-01', 'VMware', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_start_date", "ca_affiliation", "ca_active") VALUES (24232, 'alejandro@bitnami.com', 'Helper Script', NULL, 'Dawn''s vmware_mapping JSON', '2020-04-28 18:52:49', '2020-04-28 18:52:49', '1970-01-01', 'VMware', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_start_date", "ca_affiliation", "ca_active") VALUES (24233, 'alexrwave@gmail.com', 'Helper Script', NULL, 'Dawn''s vmware_mapping JSON', '2020-04-28 18:52:49', '2020-04-28 18:52:49', '1970-01-01', 'VMware', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_start_date", "ca_affiliation", "ca_active") VALUES (24234, 'jotadrilo@users.noreply.github.com', 'Helper Script', NULL, 'Dawn''s vmware_mapping JSON', '2020-04-28 18:52:49', '2020-04-28 18:52:49', '1970-01-01', 'VMware', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_start_date", "ca_affiliation", "ca_active") VALUES (24235, 'jsalmeron@bitnami.com', 'Helper Script', NULL, 'Dawn''s vmware_mapping JSON', '2020-04-28 18:52:49', '2020-04-28 18:52:49', '1970-01-01', 'VMware', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_start_date", "ca_affiliation", "ca_active") VALUES (24236, 'tomas@bitnami.com', 'Helper Script', NULL, 'Dawn''s vmware_mapping JSON', '2020-04-28 18:52:49', '2020-04-28 18:52:49', '1970-01-01', 'VMware', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_start_date", "ca_affiliation", "ca_active") VALUES (24237, 'vikram@bitnami.com', 'Helper Script', NULL, 'Dawn''s vmware_mapping JSON', '2020-04-28 18:52:49', '2020-04-28 18:52:49', '1970-01-01', 'VMware', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_start_date", "ca_affiliation", "ca_active") VALUES (24238, 'vikram-bitnami@users.noreply.github.com', 'Helper Script', NULL, 'Dawn''s vmware_mapping JSON', '2020-04-28 18:52:49', '2020-04-28 18:52:49', '1970-01-01', 'VMware', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_start_date", "ca_affiliation", "ca_active") VALUES (24239, 'crhernandez@bitnami.com', 'Helper Script', NULL, 'Dawn''s vmware_mapping JSON', '2020-04-28 18:52:49', '2020-04-28 18:52:49', '1970-01-01', 'VMware', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_start_date", "ca_affiliation", "ca_active") VALUES (24240, 'carrodher1179@gmail.com', 'Helper Script', NULL, 'Dawn''s vmware_mapping JSON', '2020-04-28 18:52:49', '2020-04-28 18:52:49', '1970-01-01', 'VMware', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_start_date", "ca_affiliation", "ca_active") VALUES (24241, 'juanjo@bitnami.com', 'Helper Script', NULL, 'Dawn''s vmware_mapping JSON', '2020-04-28 18:52:49', '2020-04-28 18:52:49', '1970-01-01', 'VMware', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_start_date", "ca_affiliation", "ca_active") VALUES (24242, 'juanjo@bitrock.com', 'Helper Script', NULL, 'Dawn''s vmware_mapping JSON', '2020-04-28 18:52:49', '2020-04-28 18:52:49', '1970-01-01', 'VMware', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_start_date", "ca_affiliation", "ca_active") VALUES (24243, 'beltran@bitnami.com', 'Helper Script', NULL, 'Dawn''s vmware_mapping JSON', '2020-04-28 18:52:49', '2020-04-28 18:52:49', '1970-01-01', 'VMware', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_start_date", "ca_affiliation", "ca_active") VALUES (24244, 'angel@bitnami.com', 'Helper Script', NULL, 'Dawn''s vmware_mapping JSON', '2020-04-28 18:52:49', '2020-04-28 18:52:49', '1970-01-01', 'VMware', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_start_date", "ca_affiliation", "ca_active") VALUES (24245, 'Angelmmiguel@users.noreply.github.com', 'Helper Script', NULL, 'Dawn''s vmware_mapping JSON', '2020-04-28 18:52:49', '2020-04-28 18:52:49', '1970-01-01', 'VMware', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_start_date", "ca_affiliation", "ca_active") VALUES (24246, 'rcampuzano82@gmail.com', 'Helper Script', NULL, 'Dawn''s vmware_mapping JSON', '2020-04-28 18:52:49', '2020-04-28 18:52:49', '1970-01-01', 'VMware', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_start_date", "ca_affiliation", "ca_active") VALUES (24247, 'andy@heptio.com', 'Helper Script', NULL, 'Dawn''s vmware_mapping JSON', '2020-04-28 18:52:49', '2020-04-28 18:52:49', '1970-01-01', 'VMware', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_start_date", "ca_affiliation", "ca_active") VALUES (24248, 'andy.goldstein@gmail.com', 'Helper Script', NULL, 'Dawn''s vmware_mapping JSON', '2020-04-28 18:52:49', '2020-04-28 18:52:49', '1970-01-01', 'VMware', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_start_date", "ca_affiliation", "ca_active") VALUES (24249, 'goldsteina@vmware.com', 'Helper Script', NULL, 'Dawn''s vmware_mapping JSON', '2020-04-28 18:52:49', '2020-04-28 18:52:49', '1970-01-01', 'VMware', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_start_date", "ca_affiliation", "ca_active") VALUES (24250, 'nolan@heptio.com', 'Helper Script', NULL, 'Dawn''s vmware_mapping JSON', '2020-04-28 18:52:49', '2020-04-28 18:52:49', '1970-01-01', 'VMware', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_start_date", "ca_affiliation", "ca_active") VALUES (27291, 'brubakern@vmware.com', 'Helper Script', NULL, 'Dawn''s vmware_mapping JSON', '2020-04-28 18:52:49', '2020-04-28 18:52:49', '1970-01-01', 'VMware', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_start_date", "ca_affiliation", "ca_active") VALUES (24252, 'nolan@nbrubaker.com', 'Helper Script', NULL, 'Dawn''s vmware_mapping JSON', '2020-04-28 18:52:49', '2020-04-28 18:52:49', '1970-01-01', 'VMware', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_start_date", "ca_affiliation", "ca_active") VALUES (24253, 'stevek@heptio.com', 'Helper Script', NULL, 'Dawn''s vmware_mapping JSON', '2020-04-28 18:52:49', '2020-04-28 18:52:49', '1970-01-01', 'VMware', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_start_date", "ca_affiliation", "ca_active") VALUES (24254, 'steve@heptio.com', 'Helper Script', NULL, 'Dawn''s vmware_mapping JSON', '2020-04-28 18:52:49', '2020-04-28 18:52:49', '1970-01-01', 'VMware', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_start_date", "ca_affiliation", "ca_active") VALUES (24255, 'stephen.kriss@gmail.com', 'Helper Script', NULL, 'Dawn''s vmware_mapping JSON', '2020-04-28 18:52:49', '2020-04-28 18:52:49', '1970-01-01', 'VMware', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_start_date", "ca_affiliation", "ca_active") VALUES (24256, 'krisss@vmware.com', 'Helper Script', NULL, 'Dawn''s vmware_mapping JSON', '2020-04-28 18:52:49', '2020-04-28 18:52:49', '1970-01-01', 'VMware', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_start_date", "ca_affiliation", "ca_active") VALUES (24257, 'carlisia@heptio.com', 'Helper Script', NULL, 'Dawn''s vmware_mapping JSON', '2020-04-28 18:52:49', '2020-04-28 18:52:49', '1970-01-01', 'VMware', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_start_date", "ca_affiliation", "ca_active") VALUES (24258, 'carlisia@grokkingtech.io', 'Helper Script', NULL, 'Dawn''s vmware_mapping JSON', '2020-04-28 18:52:49', '2020-04-28 18:52:49', '1970-01-01', 'VMware', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_start_date", "ca_affiliation", "ca_active") VALUES (24259, 'carlisiac@vmware.com', 'Helper Script', NULL, 'Dawn''s vmware_mapping JSON', '2020-04-28 18:52:49', '2020-04-28 18:52:49', '1970-01-01', 'VMware', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_start_date", "ca_affiliation", "ca_active") VALUES (24260, 'carlisia@vmware.com', 'Helper Script', NULL, 'Dawn''s vmware_mapping JSON', '2020-04-28 18:52:49', '2020-04-28 18:52:49', '1970-01-01', 'VMware', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_start_date", "ca_affiliation", "ca_active") VALUES (24261, 'wayne@heptio.com', 'Helper Script', NULL, 'Dawn''s vmware_mapping JSON', '2020-04-28 18:52:49', '2020-04-28 18:52:49', '1970-01-01', 'VMware', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_start_date", "ca_affiliation", "ca_active") VALUES (24262, 'wayne@riotousliving.com', 'Helper Script', NULL, 'Dawn''s vmware_mapping JSON', '2020-04-28 18:52:49', '2020-04-28 18:52:49', '1970-01-01', 'VMware', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_start_date", "ca_affiliation", "ca_active") VALUES (24263, 'wwitzel3@vmware.com', 'Helper Script', NULL, 'Dawn''s vmware_mapping JSON', '2020-04-28 18:52:49', '2020-04-28 18:52:49', '1970-01-01', 'VMware', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_start_date", "ca_affiliation", "ca_active") VALUES (24264, 'jennifer@heptio.com', 'Helper Script', NULL, 'Dawn''s vmware_mapping JSON', '2020-04-28 18:52:49', '2020-04-28 18:52:49', '1970-01-01', 'VMware', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_start_date", "ca_affiliation", "ca_active") VALUES (24265, 'jrondeau@heptio.com', 'Helper Script', NULL, 'Dawn''s vmware_mapping JSON', '2020-04-28 18:52:49', '2020-04-28 18:52:49', '1970-01-01', 'VMware', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_start_date", "ca_affiliation", "ca_active") VALUES (24266, 'Bradamant3@users.noreply.github.com', 'Helper Script', NULL, 'Dawn''s vmware_mapping JSON', '2020-04-28 18:52:49', '2020-04-28 18:52:49', '1970-01-01', 'VMware', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_start_date", "ca_affiliation", "ca_active") VALUES (24267, 'aadnan@vmware.com', 'Helper Script', NULL, 'Dawn''s vmware_mapping JSON', '2020-04-28 18:52:49', '2020-04-28 18:52:49', '1970-01-01', 'VMware', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_start_date", "ca_affiliation", "ca_active") VALUES (24268, 'dave@heptio.com', 'Helper Script', NULL, 'Dawn''s vmware_mapping JSON', '2020-04-28 18:52:49', '2020-04-28 18:52:49', '1970-01-01', 'VMware', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_start_date", "ca_affiliation", "ca_active") VALUES (24269, 'dave@cheney.net', 'Helper Script', NULL, 'Dawn''s vmware_mapping JSON', '2020-04-28 18:52:49', '2020-04-28 18:52:49', '1970-01-01', 'VMware', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_start_date", "ca_affiliation", "ca_active") VALUES (24270, 'steves@heptio.com', 'Helper Script', NULL, 'Dawn''s vmware_mapping JSON', '2020-04-28 18:52:49', '2020-04-28 18:52:49', '1970-01-01', 'VMware', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_start_date", "ca_affiliation", "ca_active") VALUES (24271, 'steve@stevesloka.com', 'Helper Script', NULL, 'Dawn''s vmware_mapping JSON', '2020-04-28 18:52:49', '2020-04-28 18:52:49', '1970-01-01', 'VMware', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_start_date", "ca_affiliation", "ca_active") VALUES (24272, 'slokas@vmware.com', 'Helper Script', NULL, 'Dawn''s vmware_mapping JSON', '2020-04-28 18:52:49', '2020-04-28 18:52:49', '1970-01-01', 'VMware', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_start_date", "ca_affiliation", "ca_active") VALUES (24273, 'ynick@heptio.com', 'Helper Script', NULL, 'Dawn''s vmware_mapping JSON', '2020-04-28 18:52:49', '2020-04-28 18:52:49', '1970-01-01', 'VMware', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_start_date", "ca_affiliation", "ca_active") VALUES (24274, 'inocuo@gmail.com', 'Helper Script', NULL, 'Dawn''s vmware_mapping JSON', '2020-04-28 18:52:49', '2020-04-28 18:52:49', '1970-01-01', 'VMware', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_start_date", "ca_affiliation", "ca_active") VALUES (24275, 'ynick@vmware.com', 'Helper Script', NULL, 'Dawn''s vmware_mapping JSON', '2020-04-28 18:52:49', '2020-04-28 18:52:49', '1970-01-01', 'VMware', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_start_date", "ca_affiliation", "ca_active") VALUES (24276, 'jpeach@vmware.com', 'Helper Script', NULL, 'Dawn''s vmware_mapping JSON', '2020-04-28 18:52:49', '2020-04-28 18:52:49', '1970-01-01', 'VMware', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_start_date", "ca_affiliation", "ca_active") VALUES (24277, 'ross@heptio.com', 'Helper Script', NULL, 'Dawn''s vmware_mapping JSON', '2020-04-28 18:52:49', '2020-04-28 18:52:49', '1970-01-01', 'VMware', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_start_date", "ca_affiliation", "ca_active") VALUES (24278, 'ross@kukulinski.com', 'Helper Script', NULL, 'Dawn''s vmware_mapping JSON', '2020-04-28 18:52:49', '2020-04-28 18:52:49', '1970-01-01', 'VMware', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_start_date", "ca_affiliation", "ca_active") VALUES (24279, 'ralph@heptio.com', 'Helper Script', NULL, 'Dawn''s vmware_mapping JSON', '2020-04-28 18:52:49', '2020-04-28 18:52:49', '1970-01-01', 'VMware', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_start_date", "ca_affiliation", "ca_active") VALUES (24280, 'ralph.l.bankston@gmail.com', 'Helper Script', NULL, 'Dawn''s vmware_mapping JSON', '2020-04-28 18:52:49', '2020-04-28 18:52:49', '1970-01-01', 'VMware', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_start_date", "ca_affiliation", "ca_active") VALUES (24281, 'alex_brand@heptio.com', 'Helper Script', NULL, 'Dawn''s vmware_mapping JSON', '2020-04-28 18:52:49', '2020-04-28 18:52:49', '1970-01-01', 'VMware', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_start_date", "ca_affiliation", "ca_active") VALUES (24282, 'alexbrand09@gmail.com', 'Helper Script', NULL, 'Dawn''s vmware_mapping JSON', '2020-04-28 18:52:49', '2020-04-28 18:52:49', '1970-01-01', 'VMware', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_start_date", "ca_affiliation", "ca_active") VALUES (24283, 'joe@heptio.com', 'Helper Script', NULL, 'Dawn''s vmware_mapping JSON', '2020-04-28 18:52:49', '2020-04-28 18:52:49', '1970-01-01', 'VMware', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_start_date", "ca_affiliation", "ca_active") VALUES (24284, 'joe.github@bedafamily.com', 'Helper Script', NULL, 'Dawn''s vmware_mapping JSON', '2020-04-28 18:52:49', '2020-04-28 18:52:49', '1970-01-01', 'VMware', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_start_date", "ca_affiliation", "ca_active") VALUES (24285, 'vince@heptio.com', 'Helper Script', NULL, 'Dawn''s vmware_mapping JSON', '2020-04-28 18:52:49', '2020-04-28 18:52:49', '1970-01-01', 'VMware', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_start_date", "ca_affiliation", "ca_active") VALUES (24286, 'vince@vincepri.com', 'Helper Script', NULL, 'Dawn''s vmware_mapping JSON', '2020-04-28 18:52:49', '2020-04-28 18:52:49', '1970-01-01', 'VMware', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_start_date", "ca_affiliation", "ca_active") VALUES (24287, 'chuck@heptio.com', 'Helper Script', NULL, 'Dawn''s vmware_mapping JSON', '2020-04-28 18:52:49', '2020-04-28 18:52:49', '1970-01-01', 'VMware', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_start_date", "ca_affiliation", "ca_active") VALUES (24288, 'ha.chuck@gmail.com', 'Helper Script', NULL, 'Dawn''s vmware_mapping JSON', '2020-04-28 18:52:49', '2020-04-28 18:52:49', '1970-01-01', 'VMware', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_start_date", "ca_affiliation", "ca_active") VALUES (24289, 'jason@heptio.com', 'Helper Script', NULL, 'Dawn''s vmware_mapping JSON', '2020-04-28 18:52:49', '2020-04-28 18:52:49', '1970-01-01', 'VMware', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_start_date", "ca_affiliation", "ca_active") VALUES (24290, 'detiber@gmail.com', 'Helper Script', NULL, 'Dawn''s vmware_mapping JSON', '2020-04-28 18:52:49', '2020-04-28 18:52:49', '1970-01-01', 'VMware', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_start_date", "ca_affiliation", "ca_active") VALUES (24291, 'detiberusj@vmware.com', 'Helper Script', NULL, 'Dawn''s vmware_mapping JSON', '2020-04-28 18:52:49', '2020-04-28 18:52:49', '1970-01-01', 'VMware', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_start_date", "ca_affiliation", "ca_active") VALUES (24292, 'liz@heptio.com', 'Helper Script', NULL, 'Dawn''s vmware_mapping JSON', '2020-04-28 18:52:49', '2020-04-28 18:52:49', '1970-01-01', 'VMware', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_start_date", "ca_affiliation", "ca_active") VALUES (24293, '.*liztio@users.noreply.github.com', 'Helper Script', NULL, 'Dawn''s vmware_mapping JSON', '2020-04-28 18:52:49', '2020-04-28 18:52:49', '1970-01-01', 'VMware', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_start_date", "ca_affiliation", "ca_active") VALUES (24294, 'naadir@heptio.com', 'Helper Script', NULL, 'Dawn''s vmware_mapping JSON', '2020-04-28 18:52:49', '2020-04-28 18:52:49', '1970-01-01', 'VMware', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_start_date", "ca_affiliation", "ca_active") VALUES (24295, 'naadir@randomvariable.co.uk', 'Helper Script', NULL, 'Dawn''s vmware_mapping JSON', '2020-04-28 18:52:49', '2020-04-28 18:52:49', '1970-01-01', 'VMware', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_start_date", "ca_affiliation", "ca_active") VALUES (24296, 'randomvariable@users.noreply.github.com', 'Helper Script', NULL, 'Dawn''s vmware_mapping JSON', '2020-04-28 18:52:49', '2020-04-28 18:52:49', '1970-01-01', 'VMware', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_start_date", "ca_affiliation", "ca_active") VALUES (24297, 'ruben@heptio.com', 'Helper Script', NULL, 'Dawn''s vmware_mapping JSON', '2020-04-28 18:52:49', '2020-04-28 18:52:49', '1970-01-01', 'VMware', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_start_date", "ca_affiliation", "ca_active") VALUES (24298, 'rubenoz@gmail.com', 'Helper Script', NULL, 'Dawn''s vmware_mapping JSON', '2020-04-28 18:52:49', '2020-04-28 18:52:49', '1970-01-01', 'VMware', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_start_date", "ca_affiliation", "ca_active") VALUES (24299, 'rdodev@vmware.com', 'Helper Script', NULL, 'Dawn''s vmware_mapping JSON', '2020-04-28 18:52:49', '2020-04-28 18:52:49', '1970-01-01', 'VMware', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_start_date", "ca_affiliation", "ca_active") VALUES (25300, 'tstclair@heptio.com', 'Helper Script', NULL, 'Dawn''s vmware_mapping JSON', '2020-04-28 18:52:49', '2020-04-28 18:52:49', '1970-01-01', 'VMware', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_start_date", "ca_affiliation", "ca_active") VALUES (25301, 'timothysc@users.noreply.github.com', 'Helper Script', NULL, 'Dawn''s vmware_mapping JSON', '2020-04-28 18:52:49', '2020-04-28 18:52:49', '1970-01-01', 'VMware', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_start_date", "ca_affiliation", "ca_active") VALUES (25302, 'craigtracey@gmail.com', 'Helper Script', NULL, 'Dawn''s vmware_mapping JSON', '2020-04-28 18:52:49', '2020-04-28 18:52:49', '1970-01-01', 'VMware', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_start_date", "ca_affiliation", "ca_active") VALUES (25303, 'luohui925@gmail.com', 'Helper Script', NULL, 'Dawn''s vmware_mapping JSON', '2020-04-28 18:52:49', '2020-04-28 18:52:49', '1970-01-01', 'VMware', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_start_date", "ca_affiliation", "ca_active") VALUES (25304, 'davanum@gmail.com', 'Helper Script', NULL, 'Dawn''s vmware_mapping JSON', '2020-04-28 18:52:49', '2020-04-28 18:52:49', '1970-01-01', 'VMware', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_start_date", "ca_affiliation", "ca_active") VALUES (25305, 'amy@users.noreply.github.com', 'Helper Script', NULL, 'Dawn''s vmware_mapping JSON', '2020-04-28 18:52:49', '2020-04-28 18:52:49', '1970-01-01', 'VMware', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_start_date", "ca_affiliation", "ca_active") VALUES (25306, 'bryanliles@gmail.com', 'Helper Script', NULL, 'Dawn''s vmware_mapping JSON', '2020-04-28 18:52:49', '2020-04-28 18:52:49', '1970-01-01', 'VMware', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_start_date", "ca_affiliation", "ca_active") VALUES (25307, 'bryan@Bryans-MacBook-Pro.local', 'Helper Script', NULL, 'Dawn''s vmware_mapping JSON', '2020-04-28 18:52:49', '2020-04-28 18:52:49', '1970-01-01', 'VMware', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_start_date", "ca_affiliation", "ca_active") VALUES (25308, 'lilesb@vmware.com', 'Helper Script', NULL, 'Dawn''s vmware_mapping JSON', '2020-04-28 18:52:49', '2020-04-28 18:52:49', '1970-01-01', 'VMware', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_start_date", "ca_affiliation", "ca_active") VALUES (25309, 'sfoohei@gmail.com', 'Helper Script', NULL, 'Dawn''s vmware_mapping JSON', '2020-04-28 18:52:49', '2020-04-28 18:52:49', '1970-01-01', 'VMware', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_start_date", "ca_affiliation", "ca_active") VALUES (25310, 'foos@vmware.com', 'Helper Script', NULL, 'Dawn''s vmware_mapping JSON', '2020-04-28 18:52:49', '2020-04-28 18:52:49', '1970-01-01', 'VMware', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_start_date", "ca_affiliation", "ca_active") VALUES (25311, 'mlandaverde@heptio.com', 'Helper Script', NULL, 'Dawn''s vmware_mapping JSON', '2020-04-28 18:52:49', '2020-04-28 18:52:49', '1970-01-01', 'VMware', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_start_date", "ca_affiliation", "ca_active") VALUES (25312, 'mdaverde@users.noreply.github.com', 'Helper Script', NULL, 'Dawn''s vmware_mapping JSON', '2020-04-28 18:52:49', '2020-04-28 18:52:49', '1970-01-01', 'VMware', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_start_date", "ca_affiliation", "ca_active") VALUES (25313, 'shomron@gmail.com', 'Helper Script', NULL, 'Dawn''s vmware_mapping JSON', '2020-04-28 18:52:49', '2020-04-28 18:52:49', '1970-01-01', 'VMware', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_start_date", "ca_affiliation", "ca_active") VALUES (25314, 'derek@heptio.com', 'Helper Script', NULL, 'Dawn''s vmware_mapping JSON', '2020-04-28 18:52:49', '2020-04-28 18:52:49', '1970-01-01', 'VMware', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_start_date", "ca_affiliation", "ca_active") VALUES (25315, 'jderekwilson@gmail.com', 'Helper Script', NULL, 'Dawn''s vmware_mapping JSON', '2020-04-28 18:52:49', '2020-04-28 18:52:49', '1970-01-01', 'VMware', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_start_date", "ca_affiliation", "ca_active") VALUES (25316, 'eric@heptio.com', 'Helper Script', NULL, 'Dawn''s vmware_mapping JSON', '2020-04-28 18:52:49', '2020-04-28 18:52:49', '1970-01-01', 'VMware', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_start_date", "ca_affiliation", "ca_active") VALUES (25317, 'kate.kuchin@gmail.com', 'Helper Script', NULL, 'Dawn''s vmware_mapping JSON', '2020-04-28 18:52:49', '2020-04-28 18:52:49', '1970-01-01', 'VMware', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_start_date", "ca_affiliation", "ca_active") VALUES (25318, 'suraci.alex@gmail.com', 'Helper Script', NULL, 'Dawn''s vmware_mapping JSON', '2020-04-28 18:52:49', '2020-04-28 18:52:49', '1970-01-01', 'VMware', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_start_date", "ca_affiliation", "ca_active") VALUES (25319, 'asuraci@pivotal.io', 'Helper Script', NULL, 'Dawn''s vmware_mapping JSON', '2020-04-28 18:52:49', '2020-04-28 18:52:49', '1970-01-01', 'VMware', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_start_date", "ca_affiliation", "ca_active") VALUES (25320, 'alex@localhost.localdomain', 'Helper Script', NULL, 'Dawn''s vmware_mapping JSON', '2020-04-28 18:52:49', '2020-04-28 18:52:49', '1970-01-01', 'VMware', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_start_date", "ca_affiliation", "ca_active") VALUES (25321, 'julian.zucker@gmail.com', 'Helper Script', NULL, 'Dawn''s vmware_mapping JSON', '2020-04-28 18:52:49', '2020-04-28 18:52:49', '1970-01-01', 'VMware', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_start_date", "ca_affiliation", "ca_active") VALUES (25322, 'sahil.muthoo@gmail.com', 'Helper Script', NULL, 'Dawn''s vmware_mapping JSON', '2020-04-28 18:52:49', '2020-04-28 18:52:49', '1970-01-01', 'VMware', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_start_date", "ca_affiliation", "ca_active") VALUES (25323, 'fali@pivotal.io', 'Helper Script', NULL, 'Dawn''s vmware_mapping JSON', '2020-04-28 18:52:49', '2020-04-28 18:52:49', '1970-01-01', 'VMware', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_start_date", "ca_affiliation", "ca_active") VALUES (25324, 'fai28683@gmail.com', 'Helper Script', NULL, 'Dawn''s vmware_mapping JSON', '2020-04-28 18:52:49', '2020-04-28 18:52:49', '1970-01-01', 'VMware', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_start_date", "ca_affiliation", "ca_active") VALUES (25325, 'dgarnier@pivotal.io', 'Helper Script', NULL, 'Dawn''s vmware_mapping JSON', '2020-04-28 18:52:49', '2020-04-28 18:52:49', '1970-01-01', 'VMware', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_start_date", "ca_affiliation", "ca_active") VALUES (25326, 'git@garnier.wf', 'Helper Script', NULL, 'Dawn''s vmware_mapping JSON', '2020-04-28 18:52:49', '2020-04-28 18:52:49', '1970-01-01', 'VMware', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_start_date", "ca_affiliation", "ca_active") VALUES (25327, 'matthew.heidemann@gmail.com', 'Helper Script', NULL, 'Dawn''s vmware_mapping JSON', '2020-04-28 18:52:49', '2020-04-28 18:52:49', '1970-01-01', 'VMware', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_start_date", "ca_affiliation", "ca_active") VALUES (25328, 'me@lurraca.com', 'Helper Script', NULL, 'Dawn''s vmware_mapping JSON', '2020-04-28 18:52:49', '2020-04-28 18:52:49', '1970-01-01', 'VMware', 1) ON CONFLICT DO NOTHING; -INSERT INTO "augur_data"."contributor_affiliations"("ca_id", "ca_domain", "tool_source", "tool_version", "data_source", "data_collection_date", "ca_last_used", "ca_start_date", "ca_affiliation", "ca_active") VALUES (25329, 'lurraca@pivotal.io', 'Helper Script', NULL, 'Dawn''s vmware_mapping JSON', '2020-04-28 18:52:49', '2020-04-28 18:52:49', '1970-01-01', 'VMware', 1) ON CONFLICT DO NOTHING; - -update "augur_operations"."augur_settings" set value = 43 where setting = 'augur_data_version'; - - -COMMIT; - - - - - - -ALTER TABLE "augur_data"."pull_request_analysis" ALTER COLUMN "merge_probability" TYPE numeric(256,250) USING "merge_probability"::numeric(256,250); - -ALTER TABLE "augur_data"."pull_requests" ALTER COLUMN "repo_id" SET DEFAULT 0; - -COMMENT ON CONSTRAINT "fk_repo_repo_groups_1" ON "augur_data"."repo" IS 'Repo_groups cardinality set to one and only one because, although in theory there could be more than one repo group for a repo, this might create dependencies in hosted situation that we do not want to live with. '; - -CREATE INDEX IF NOT EXISTS "probability_idx" ON "augur_data"."pull_request_analysis" USING btree ( - "merge_probability" "pg_catalog"."numeric_ops" DESC NULLS LAST -); - - -update "augur_operations"."augur_settings" set value = 44 where setting = 'augur_data_version'; -COMMIT; - - - - - - -CREATE SEQUENCE IF "augur_operations"."affiliations_corp_id_seq" -INCREMENT 1 -MINVALUE 1 -MAXVALUE 9223372036854775807 -START 620000 -CACHE 1; - -CREATE SEQUENCE "augur_operations"."worker_oauth_oauth_id_seq" -INCREMENT 1 -MINVALUE 1 -MAXVALUE 9223372036854775807 -START 620000 -CACHE 1; - -COMMENT ON TABLE "augur_operations"."augur_settings" IS 'Augur settings include the schema version, and the Augur API Key as of 10/25/2020. Future augur settings may be stored in this table, which has the basic structure of a name-value pair. '; - -COMMENT ON TABLE "augur_operations"."repos_fetch_log" IS 'For future use when we move all working tables to the augur_operations schema. '; - -COMMENT ON TABLE "augur_operations"."worker_history" IS 'This table stores the complete history of job execution, including success and failure. It is useful for troubleshooting. '; - -COMMENT ON TABLE "augur_operations"."worker_job" IS 'This table stores the jobs workers collect data for. A job is found in the code, and in the augur.config.json under the construct of a “model”. '; - -ALTER TABLE "augur_operations"."worker_job" ALTER COLUMN "description" SET DEFAULT 'None'::character varying; - -COMMENT ON TABLE "augur_operations"."worker_oauth" IS 'This table stores credentials for retrieving data from platform API’s. Entries in this table must comply with the terms of service for each platform. '; - -ALTER TABLE "augur_operations"."worker_oauth" ALTER COLUMN "oauth_id" TYPE int8 USING "oauth_id"::int8; - -ALTER TABLE "augur_operations"."worker_oauth" ALTER COLUMN "oauth_id" SET DEFAULT nextval('"augur_operations".worker_oauth_oauth_id_seq'::regclass); - -ALTER TABLE "augur_operations"."worker_oauth" ADD CONSTRAINT "worker_oauth_pkey" PRIMARY KEY ("oauth_id"); - -COMMENT ON TABLE "augur_operations"."worker_settings_facade" IS 'For future use when we move all working tables to the augur_operations schema. '; - -COMMENT ON TABLE "augur_operations"."working_commits" IS 'For future use when we move all working tables to the augur_operations schema. '; - -SELECT setval('"augur_operations"."affiliations_corp_id_seq"', 1, false); - -ALTER SEQUENCE "augur_operations"."affiliations_corp_id_seq" OWNER TO "augur"; - -SELECT setval('"augur_operations"."gh_worker_history_history_id_seq"', 6300000, true); - -SELECT setval('"augur_operations"."worker_oauth_oauth_id_seq"', 6300000, true); - -ALTER SEQUENCE "augur_operations"."worker_oauth_oauth_id_seq" OWNER TO "augur"; - -CREATE INDEX "repos_id,statusops" ON "augur_operations"."repos_fetch_log" USING btree ( - "repos_id" "pg_catalog"."int4_ops" ASC NULLS LAST, - "status" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST -); - - - -update "augur_operations"."augur_settings" set value = 45 where setting = 'augur_data_version'; - - - --- ---------------------------- --- Table structure for contributor_repo --- ---------------------------- - -BEGIN; - -DROP TABLE IF EXISTS "augur_data"."contributor_repo"; - - -CREATE TABLE IF NOT EXISTS "augur_data"."contributor_repo" ( - "cntrb_repo_id" SERIAL8, - "cntrb_id" int8 NOT NULL, - "repo_git" varchar COLLATE "pg_catalog"."default" NOT NULL, - "tool_source" varchar COLLATE "pg_catalog"."default", - "tool_version" varchar COLLATE "pg_catalog"."default", - "data_source" varchar COLLATE "pg_catalog"."default", - "data_collection_date" timestamp(0) DEFAULT CURRENT_TIMESTAMP, - "repo_name" varchar(255) COLLATE "pg_catalog"."default" NOT NULL, - "gh_repo_id" int8 NOT NULL, - "cntrb_category" varchar(255) COLLATE "pg_catalog"."default", - "event_id" int8 -) -; -ALTER TABLE "augur_data"."contributor_repo" OWNER TO "augur"; -COMMENT ON COLUMN "augur_data"."contributor_repo"."cntrb_id" IS 'This is not null because what is the point without the contributor in this table? '; -COMMENT ON COLUMN "augur_data"."contributor_repo"."repo_git" IS 'Similar to cntrb_id, we need this data for the table to have meaningful data. '; -COMMENT ON TABLE "augur_data"."contributor_repo" IS 'Developed in Partnership with Andrew Brain. -
From: 

[ - { - "login": "octocat", - "id": 1, - "node_id": "MDQ6VXNlcjE=", - "avatar_url": "https://github.com/images/error/octocat_happy.gif", - "gravatar_id": "", - "url": "https://api.github.com/users/octocat", - "html_url": "https://github.com/octocat", - "followers_url": "https://api.github.com/users/octocat/followers", - "following_url": "https://api.github.com/users/octocat/following{/other_user}", - "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", - "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", - "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", - "organizations_url": "https://api.github.com/users/octocat/orgs", - "repos_url": "https://api.github.com/users/octocat/repos", - "events_url": "https://api.github.com/users/octocat/events{/privacy}", - "received_events_url": "https://api.github.com/users/octocat/received_events", - "type": "User", - "site_admin": false - } -] -




'; - --- ---------------------------- --- Primary Key structure for table contributor_repo --- ---------------------------- -ALTER TABLE "augur_data"."contributor_repo" DROP CONSTRAINT "cntrb_repo_id_key"; - -ALTER TABLE "augur_data"."contributor_repo" ADD CONSTRAINT "cntrb_repo_id_key" PRIMARY KEY ("cntrb_repo_id"); - --- ---------------------------- --- Foreign Keys structure for table contributor_repo --- ---------------------------- -ALTER TABLE "augur_data"."contributor_repo" DROP CONSTRAINT "fk_contributor_repo_contributors_1"; - -ALTER TABLE "augur_data"."contributor_repo" ADD CONSTRAINT "fk_contributor_repo_contributors_1" FOREIGN KEY ("cntrb_id") REFERENCES "augur_data"."contributors" ("cntrb_id") ON DELETE RESTRICT ON UPDATE CASCADE; - -update "augur_operations"."augur_settings" set value = 46 where setting = 'augur_data_version'; - - -COMMIT; - - - ---------------- 47 ------------------ - - --- ---------------------------- --- Table structure for contributor_repo --- ---------------------------- - -BEGIN; - -DROP TABLE IF EXISTS "augur_data"."contributor_repo"; - - -CREATE TABLE IF NOT EXISTS "augur_data"."contributor_repo" ( - "cntrb_repo_id" SERIAL8, - "cntrb_id" int8 NOT NULL, - "repo_git" varchar COLLATE "pg_catalog"."default" NOT NULL, - "tool_source" varchar COLLATE "pg_catalog"."default", - "tool_version" varchar COLLATE "pg_catalog"."default", - "data_source" varchar COLLATE "pg_catalog"."default", - "data_collection_date" timestamp(0) DEFAULT CURRENT_TIMESTAMP, - "repo_name" varchar(255) COLLATE "pg_catalog"."default" NOT NULL, - "gh_repo_id" int8 NOT NULL, - "cntrb_category" varchar(255) COLLATE "pg_catalog"."default", - "event_id" int8 -) -; -ALTER TABLE "augur_data"."contributor_repo" OWNER TO "augur"; -COMMENT ON COLUMN "augur_data"."contributor_repo"."cntrb_id" IS 'This is not null because what is the point without the contributor in this table? '; -COMMENT ON COLUMN "augur_data"."contributor_repo"."repo_git" IS 'Similar to cntrb_id, we need this data for the table to have meaningful data. '; -COMMENT ON TABLE "augur_data"."contributor_repo" IS 'Developed in Partnership with Andrew Brain. -
From: 

[ - { - "login": "octocat", - "id": 1, - "node_id": "MDQ6VXNlcjE=", - "avatar_url": "https://github.com/images/error/octocat_happy.gif", - "gravatar_id": "", - "url": "https://api.github.com/users/octocat", - "html_url": "https://github.com/octocat", - "followers_url": "https://api.github.com/users/octocat/followers", - "following_url": "https://api.github.com/users/octocat/following{/other_user}", - "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", - "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", - "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", - "organizations_url": "https://api.github.com/users/octocat/orgs", - "repos_url": "https://api.github.com/users/octocat/repos", - "events_url": "https://api.github.com/users/octocat/events{/privacy}", - "received_events_url": "https://api.github.com/users/octocat/received_events", - "type": "User", - "site_admin": false - } -] -




'; - --- ---------------------------- --- Primary Key structure for table contributor_repo --- ---------------------------- -ALTER TABLE "augur_data"."contributor_repo" DROP CONSTRAINT "cntrb_repo_id_key"; - -ALTER TABLE "augur_data"."contributor_repo" ADD CONSTRAINT "cntrb_repo_id_key" PRIMARY KEY ("cntrb_repo_id"); - --- ---------------------------- --- Foreign Keys structure for table contributor_repo --- ---------------------------- -ALTER TABLE "augur_data"."contributor_repo" DROP CONSTRAINT "fk_contributor_repo_contributors_1"; - -ALTER TABLE "augur_data"."contributor_repo" ADD CONSTRAINT "fk_contributor_repo_contributors_1" FOREIGN KEY ("cntrb_id") REFERENCES "augur_data"."contributors" ("cntrb_id") ON DELETE RESTRICT ON UPDATE CASCADE; - -update "augur_operations"."augur_settings" set value = 46 where setting = 'augur_data_version'; - - -COMMIT; - - - ---------------- 47 ------------------ - - - -BEGIN; - --- ---------------------------- --- Table structure for contributor_repo --- ---------------------------- -DROP TABLE IF EXISTS "augur_data"."contributor_repo"; -CREATE TABLE "augur_data"."contributor_repo" ( - "cntrb_repo_id" int4 NOT NULL DEFAULT nextval('"augur_data".contributor_repo_cntrb_repo_id_seq'::regclass), - "cntrb_id" int8 NOT NULL, - "repo_git" varchar COLLATE "pg_catalog"."default" NOT NULL, - "tool_source" varchar COLLATE "pg_catalog"."default", - "tool_version" varchar COLLATE "pg_catalog"."default", - "data_source" varchar COLLATE "pg_catalog"."default", - "data_collection_date" timestamp(0) DEFAULT CURRENT_TIMESTAMP, - "repo_name" varchar(255) COLLATE "pg_catalog"."default" NOT NULL, - "gh_repo_id" int8 NOT NULL, - "cntrb_category" varchar(255) COLLATE "pg_catalog"."default", - "event_id" int8, - "created_at" timestamp(0) -) -; -ALTER TABLE "augur_data"."contributor_repo" OWNER TO "augur"; -COMMENT ON COLUMN "augur_data"."contributor_repo"."cntrb_id" IS 'This is not null because what is the point without the contributor in this table? '; -COMMENT ON COLUMN "augur_data"."contributor_repo"."repo_git" IS 'Similar to cntrb_id, we need this data for the table to have meaningful data. '; -COMMENT ON TABLE "augur_data"."contributor_repo" IS 'Developed in Partnership with Andrew Brain. -
From: 

[ - { - "login": "octocat", - "id": 1, - "node_id": "MDQ6VXNlcjE=", - "avatar_url": "https://github.com/images/error/octocat_happy.gif", - "gravatar_id": "", - "url": "https://api.github.com/users/octocat", - "html_url": "https://github.com/octocat", - "followers_url": "https://api.github.com/users/octocat/followers", - "following_url": "https://api.github.com/users/octocat/following{/other_user}", - "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", - "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", - "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", - "organizations_url": "https://api.github.com/users/octocat/orgs", - "repos_url": "https://api.github.com/users/octocat/repos", - "events_url": "https://api.github.com/users/octocat/events{/privacy}", - "received_events_url": "https://api.github.com/users/octocat/received_events", - "type": "User", - "site_admin": false - } -] -




'; - - --- ---------------------------- --- Primary Key structure for table contributor_repo --- ---------------------------- -ALTER TABLE "augur_data"."contributor_repo" DROP CONSTRAINT IF EXISTS "cntrb_repo_id_key"; - -ALTER TABLE "augur_data"."contributor_repo" ADD CONSTRAINT "cntrb_repo_id_key" PRIMARY KEY ("cntrb_repo_id"); - --- ---------------------------- --- Foreign Keys structure for table contributor_repo --- ---------------------------- -ALTER TABLE "augur_data"."contributor_repo" DROP CONSTRAINT IF EXISTS "fk_contributor_repo_contributors_1"; - -ALTER TABLE "augur_data"."contributor_repo" ADD CONSTRAINT "fk_contributor_repo_contributors_1" FOREIGN KEY ("cntrb_id") REFERENCES "augur_data"."contributors" ("cntrb_id") ON DELETE RESTRICT ON UPDATE CASCADE; - -update "augur_operations"."augur_settings" set value = 47 where setting = 'augur_data_version'; - - -COMMIT; - - -BEGIN; - -ALTER TABLE "augur_data"."topic_words" - DROP CONSTRAINT IF EXISTS "fk_topic_words_repo_topic_1"; - -update "augur_operations"."augur_settings" set value = 48 where setting = 'augur_data_version'; - - -COMMIT; - - - diff --git a/schema/20201025-Release-0.14.0.svg b/schema/20201025-Release-0.14.0.svg deleted file mode 100644 index 817b58e4c4..0000000000 --- a/schema/20201025-Release-0.14.0.svg +++ /dev/null @@ -1,54980 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/schema/20201111-Release-0.14.1.pdf b/schema/20201111-Release-0.14.1.pdf deleted file mode 100644 index a5e23643db..0000000000 Binary files a/schema/20201111-Release-0.14.1.pdf and /dev/null differ diff --git a/schema/20201111-Release-0.14.1.svg b/schema/20201111-Release-0.14.1.svg deleted file mode 100644 index 08f2b22f02..0000000000 --- a/schema/20201111-Release-0.14.1.svg +++ /dev/null @@ -1,55486 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/schema/20210811-augur-0.2.1-release.ndm2 b/schema/20210811-augur-0.2.1-release.ndm2 new file mode 100644 index 0000000000..63e3c4a93f --- /dev/null +++ b/schema/20210811-augur-0.2.1-release.ndm2 @@ -0,0 +1,52339 @@ +{ + "paper": { + "name": "A4", + "leftMargin": 0.5, + "rightMargin": 0.5, + "topMargin": 0.5, + "bottomMargin": 0.5, + "isPortriat": true + }, + "modelVersion": 2.01, + "defaultSchema": "Default", + "server": { + "objectType": "Server_PGSQL", + "name": "Default", + "serverVersion": 120000, + "edition": "Default", + "catalogs": [ + { + "objectType": "Catalog_PGSQL", + "name": "Default", + "schemas": [ + { + "objectType": "Schema_PGSQL", + "name": "Default", + "comment": "", + "tables": [], + "views": [] + }, + { + "objectType": "Schema_PGSQL", + "name": "augur_data", + "comment": "", + "tables": [ + { + "objectType": "TableNormal_PGSQL", + "name": "_dev1_repo_deps_scorecard", + "comment": "", + "tablespace": "", + "isUnlogged": false, + "owner": "augur", + "inheritFromTables": [], + "hasOIDs": false, + "fillFactor": -1, + "oldName": "_dev1_repo_deps_scorecard", + "oid": 15488532, + "rows": 0, + "isInheritTables": false, + "cluster": "", + "ACL": "", + "isPartition": false, + "partitioningStrategy": "None", + "partitionOfSchema": "", + "partitionOfTable": "", + "partitionListValues": [], + "partitionRangeFromValues": [], + "partitionRangeToValues": [], + "foreignServer": "", + "foreignOptionDisplay": "", + "fields": [ + { + "objectType": "TableField_PGSQL", + "name": "repo_deps_scorecard_id", + "type": "int8", + "length": 64, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": false, + "defaultType": "Others", + "defaultValue": "nextval('augur_data.repo_deps_scorecard_repo_deps_scorecard_id_seq'::regclass)", + "comment": "", + "oldName": "repo_deps_scorecard_id", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 1, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "repo_id", + "type": "int8", + "length": 64, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "repo_id", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 2, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "ossf_active_status", + "type": "varchar", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "ossf_active_status", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 3, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "ossf_branch_protection_status", + "type": "varchar", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "ossf_branch_protection_status", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 4, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "ossf_ci_tests_status", + "type": "varchar", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "ossf_ci_tests_status", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 5, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "ossf_cii_badge_status", + "type": "varchar", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "ossf_cii_badge_status", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 6, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "ossf_code_review_status", + "type": "varchar", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "ossf_code_review_status", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 7, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "ossf_contributors_status", + "type": "varchar", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "ossf_contributors_status", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 8, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "ossf_frozen_deps_status", + "type": "varchar", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "ossf_frozen_deps_status", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 9, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "ossf_fuzzing_status", + "type": "varchar", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "ossf_fuzzing_status", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 10, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "ossf_packaging_status", + "type": "varchar", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "ossf_packaging_status", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 11, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "ossf_pull_request_status", + "type": "varchar", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "ossf_pull_request_status", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 12, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "ossf_sast_status", + "type": "varchar", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "ossf_sast_status", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 13, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "ossf_security_policy_status", + "type": "varchar", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "ossf_security_policy_status", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 14, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "ossf_signed_releases_status", + "type": "varchar", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "ossf_signed_releases_status", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 15, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "ossf_signed_tags_status", + "type": "varchar", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "ossf_signed_tags_status", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 16, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "ossf_active_score", + "type": "varchar", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "ossf_active_score", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 17, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "ossf_branch_protection_score", + "type": "varchar", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "ossf_branch_protection_score", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 18, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "ossf_ci_tests_score", + "type": "varchar", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "ossf_ci_tests_score", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 19, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "ossf_cii_badge_score", + "type": "varchar", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "ossf_cii_badge_score", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 20, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "ossf_code_review_score", + "type": "varchar", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "ossf_code_review_score", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 21, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "ossf_contributors_score", + "type": "varchar", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "ossf_contributors_score", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 22, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "ossf_frozen_deps_score", + "type": "varchar", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "ossf_frozen_deps_score", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 23, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "ossf_fuzzing_score", + "type": "varchar", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "ossf_fuzzing_score", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 24, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "ossf_packaging_score", + "type": "varchar", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "ossf_packaging_score", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 25, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "ossf_pull_request_score", + "type": "varchar", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "ossf_pull_request_score", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 26, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "ossf_sast_score", + "type": "varchar", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "ossf_sast_score", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 27, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "ossf_security_policy_score", + "type": "varchar", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "ossf_security_policy_score", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 28, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "ossf_signed_releases_score", + "type": "varchar", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "ossf_signed_releases_score", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 29, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "ossf_signed_tags_score", + "type": "varchar", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "ossf_signed_tags_score", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 30, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "tool_source", + "type": "varchar", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "tool_source", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 31, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "tool_version", + "type": "varchar", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "tool_version", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 32, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "data_source", + "type": "varchar", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "data_source", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 33, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "data_collection_date", + "type": "timestamp", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "Others", + "defaultValue": "CURRENT_TIMESTAMP", + "comment": "", + "oldName": "data_collection_date", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 34, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + } + ], + "indexes": [], + "rules": [], + "primaryKey": { + "objectType": "PrimaryKey_PGSQL", + "name": "repo_deps_scorecard_pkey", + "fields": [ + "repo_deps_scorecard_id" + ], + "fillFactor": -1, + "indexTablespace": "", + "comment": "", + "isDeferrable": false, + "isDeferred": false, + "oldName": "repo_deps_scorecard_pkey" + }, + "foreignKeys": [ + { + "objectType": "ForeignKey_PGSQL", + "name": "repo_id", + "fields": [ + "repo_id" + ], + "referenceSchema": "augur_data", + "referenceTable": "repo", + "referenceFields": [ + "repo_id" + ], + "onDelete": "NO ACTION", + "onUpdate": "NO ACTION", + "comment": "", + "isMatchFull": false, + "isDeferrable": false, + "isDeferred": false, + "sourceCardinality": "ZeroOrManyRelationship", + "targetCardinality": "ZeroOrOneRelationship", + "oldName": "repo_id" + } + ], + "uniques": [], + "checks": [], + "excludes": [], + "triggers": [], + "partitionKeys": [], + "partitions": [] + }, + { + "objectType": "TableNormal_PGSQL", + "name": "analysis_log", + "comment": "", + "tablespace": "", + "isUnlogged": false, + "owner": "augur", + "inheritFromTables": [], + "hasOIDs": false, + "fillFactor": -1, + "oldName": "analysis_log", + "oid": 15486416, + "rows": 212, + "isInheritTables": false, + "cluster": "", + "ACL": "", + "isPartition": false, + "partitioningStrategy": "None", + "partitionOfSchema": "", + "partitionOfTable": "", + "partitionListValues": [], + "partitionRangeFromValues": [], + "partitionRangeToValues": [], + "foreignServer": "", + "foreignOptionDisplay": "", + "fields": [ + { + "objectType": "TableField_PGSQL", + "name": "repos_id", + "type": "int4", + "length": 32, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": false, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "repos_id", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 1, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "status", + "type": "varchar", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": false, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "status", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 2, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "date_attempted", + "type": "timestamp", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": false, + "defaultType": "Others", + "defaultValue": "CURRENT_TIMESTAMP", + "comment": "", + "oldName": "date_attempted", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 3, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + } + ], + "indexes": [ + { + "objectType": "Index_PGSQL", + "name": "repos_id", + "comment": "", + "isClustered": false, + "isConcurrently": false, + "isUnique": false, + "fastUpdate": "", + "buffering": "", + "fillFactor": -1, + "method": "BTree", + "tableSpaceName": "", + "constraint": "", + "oldName": "repos_id", + "oid": 15486895, + "owner": "augur", + "brinPagesPerRange": -1, + "ginPendingListLimit": -1, + "tableName": "analysis_log", + "size": "16", + "fields": [ + { + "objectType": "IndexField_PGSQL", + "name": "repos_id", + "collation": "", + "opClass": "int4_ops", + "opClassSchema": "pg_catalog", + "order": "ASC", + "nullSort": "NULLS LAST", + "oldName": "repos_id", + "collationSchema": "" + } + ] + } + ], + "rules": [], + "foreignKeys": [], + "uniques": [], + "checks": [], + "excludes": [], + "triggers": [], + "partitionKeys": [], + "partitions": [] + }, + { + "objectType": "TableNormal_PGSQL", + "name": "chaoss_metric_status", + "comment": "This table used to track CHAOSS Metric implementations in Augur, but due to the constantly changing location of that information, it is for the moment not actively populated. ", + "tablespace": "", + "isUnlogged": false, + "owner": "augur", + "inheritFromTables": [], + "hasOIDs": false, + "fillFactor": -1, + "oldName": "chaoss_metric_status", + "oid": 15486423, + "rows": 80, + "isInheritTables": false, + "cluster": "", + "ACL": "", + "isPartition": false, + "partitioningStrategy": "None", + "partitionOfSchema": "", + "partitionOfTable": "", + "partitionListValues": [], + "partitionRangeFromValues": [], + "partitionRangeToValues": [], + "foreignServer": "", + "foreignOptionDisplay": "", + "fields": [ + { + "objectType": "TableField_PGSQL", + "name": "cms_id", + "type": "int8", + "length": 64, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": false, + "defaultType": "Others", + "defaultValue": "nextval('augur_data.chaoss_metric_status_cms_id_seq'::regclass)", + "comment": "", + "oldName": "cms_id", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 1, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "cm_group", + "type": "varchar", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "cm_group", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 2, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "cm_source", + "type": "varchar", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "cm_source", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 3, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "cm_type", + "type": "varchar", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "cm_type", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 4, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "cm_backend_status", + "type": "varchar", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "cm_backend_status", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 5, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "cm_frontend_status", + "type": "varchar", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "cm_frontend_status", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 6, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "cm_defined", + "type": "bool", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "cm_defined", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 7, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "cm_api_endpoint_repo", + "type": "varchar", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "cm_api_endpoint_repo", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 8, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "cm_api_endpoint_rg", + "type": "varchar", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "cm_api_endpoint_rg", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 9, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "cm_name", + "type": "varchar", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "cm_name", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 10, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "cm_working_group", + "type": "varchar", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "cm_working_group", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 11, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "cm_info", + "type": "json", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "cm_info", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 12, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "tool_source", + "type": "varchar", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "tool_source", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 13, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "tool_version", + "type": "varchar", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "tool_version", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 14, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "data_source", + "type": "varchar", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "data_source", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 15, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "data_collection_date", + "type": "timestamp", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "Others", + "defaultValue": "CURRENT_TIMESTAMP", + "comment": "", + "oldName": "data_collection_date", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 16, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "cm_working_group_focus_area", + "type": "varchar", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "cm_working_group_focus_area", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 17, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + } + ], + "indexes": [], + "rules": [], + "primaryKey": { + "objectType": "PrimaryKey_PGSQL", + "name": "chaoss_metric_status_pkey", + "fields": [ + "cms_id" + ], + "fillFactor": -1, + "indexTablespace": "", + "comment": "", + "isDeferrable": false, + "isDeferred": false, + "oldName": "chaoss_metric_status_pkey" + }, + "foreignKeys": [], + "uniques": [], + "checks": [], + "excludes": [], + "triggers": [], + "partitionKeys": [], + "partitions": [] + }, + { + "objectType": "TableNormal_PGSQL", + "name": "commit_comment_ref", + "comment": "", + "tablespace": "", + "isUnlogged": false, + "owner": "augur", + "inheritFromTables": [], + "hasOIDs": false, + "fillFactor": -1, + "oldName": "commit_comment_ref", + "oid": 15486431, + "rows": 0, + "isInheritTables": false, + "cluster": "", + "ACL": "", + "isPartition": false, + "partitioningStrategy": "None", + "partitionOfSchema": "", + "partitionOfTable": "", + "partitionListValues": [], + "partitionRangeFromValues": [], + "partitionRangeToValues": [], + "foreignServer": "", + "foreignOptionDisplay": "", + "fields": [ + { + "objectType": "TableField_PGSQL", + "name": "cmt_comment_id", + "type": "int8", + "length": 64, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": false, + "defaultType": "Others", + "defaultValue": "nextval('augur_data.commit_comment_ref_cmt_comment_id_seq'::regclass)", + "comment": "", + "oldName": "cmt_comment_id", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 1, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "cmt_id", + "type": "int8", + "length": 64, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": false, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "cmt_id", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 2, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "msg_id", + "type": "int8", + "length": 64, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": false, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "msg_id", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 3, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "user_id", + "type": "int8", + "length": 64, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": false, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "user_id", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 4, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "body", + "type": "text", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "body", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 5, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "line", + "type": "int8", + "length": 64, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "line", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 6, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "position", + "type": "int8", + "length": 64, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "position", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 7, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "created_at", + "type": "timestamp", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": false, + "defaultType": "Others", + "defaultValue": "CURRENT_TIMESTAMP", + "comment": "", + "oldName": "created_at", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 8, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "tool_source", + "type": "varchar", + "length": 255, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "tool_source", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 9, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "tool_version", + "type": "varchar", + "length": 255, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "tool_version", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 10, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "data_source", + "type": "varchar", + "length": 255, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "data_source", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 11, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "data_collection_date", + "type": "timestamp", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "Others", + "defaultValue": "CURRENT_TIMESTAMP", + "comment": "", + "oldName": "data_collection_date", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 12, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "cmt_comment_src_id", + "type": "int8", + "length": 64, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": false, + "defaultType": "None", + "defaultValue": "", + "comment": "For data provenance, we store the source ID if it exists. ", + "oldName": "cmt_comment_src_id", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 13, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "commit_comment_src_node_id", + "type": "varchar", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "For data provenance, we store the source node ID if it exists. ", + "oldName": "commit_comment_src_node_id", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 14, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + } + ], + "indexes": [ + { + "objectType": "Index_PGSQL", + "name": "comment_id", + "comment": "", + "isClustered": false, + "isConcurrently": false, + "isUnique": false, + "fastUpdate": "", + "buffering": "", + "fillFactor": -1, + "method": "BTree", + "tableSpaceName": "", + "constraint": "", + "oldName": "comment_id", + "oid": 15486898, + "owner": "augur", + "brinPagesPerRange": -1, + "ginPendingListLimit": -1, + "tableName": "commit_comment_ref", + "size": "8", + "fields": [ + { + "objectType": "IndexField_PGSQL", + "name": "cmt_comment_src_id", + "collation": "", + "opClass": "int8_ops", + "opClassSchema": "pg_catalog", + "order": "ASC", + "nullSort": "NULLS LAST", + "oldName": "cmt_comment_src_id", + "collationSchema": "" + }, + { + "objectType": "IndexField_PGSQL", + "name": "cmt_comment_id", + "collation": "", + "opClass": "int8_ops", + "opClassSchema": "pg_catalog", + "order": "ASC", + "nullSort": "NULLS LAST", + "oldName": "cmt_comment_id", + "collationSchema": "" + }, + { + "objectType": "IndexField_PGSQL", + "name": "msg_id", + "collation": "", + "opClass": "int8_ops", + "opClassSchema": "pg_catalog", + "order": "ASC", + "nullSort": "NULLS LAST", + "oldName": "msg_id", + "collationSchema": "" + } + ] + } + ], + "rules": [], + "primaryKey": { + "objectType": "PrimaryKey_PGSQL", + "name": "commit_comment_ref_pkey", + "fields": [ + "cmt_comment_id" + ], + "fillFactor": -1, + "indexTablespace": "", + "comment": "", + "isDeferrable": false, + "isDeferred": false, + "oldName": "commit_comment_ref_pkey" + }, + "foreignKeys": [ + { + "objectType": "ForeignKey_PGSQL", + "name": "fk_commit_comment_ref_commits_1", + "fields": [ + "cmt_id" + ], + "referenceSchema": "augur_data", + "referenceTable": "commits", + "referenceFields": [ + "cmt_id" + ], + "onDelete": "NO ACTION", + "onUpdate": "NO ACTION", + "comment": "", + "isMatchFull": false, + "isDeferrable": false, + "isDeferred": false, + "sourceCardinality": "ZeroOrManyRelationship", + "targetCardinality": "OneAndOnlyOneRelationship", + "oldName": "fk_commit_comment_ref_commits_1" + }, + { + "objectType": "ForeignKey_PGSQL", + "name": "fk_commit_comment_ref_message_1", + "fields": [ + "msg_id" + ], + "referenceSchema": "augur_data", + "referenceTable": "message", + "referenceFields": [ + "msg_id" + ], + "onDelete": "NO ACTION", + "onUpdate": "NO ACTION", + "comment": "", + "isMatchFull": false, + "isDeferrable": false, + "isDeferred": false, + "sourceCardinality": "ZeroOrManyRelationship", + "targetCardinality": "OneAndOnlyOneRelationship", + "oldName": "fk_commit_comment_ref_message_1" + } + ], + "uniques": [ + { + "objectType": "Unique_PGSQL", + "name": "commitcomment", + "fields": [ + "cmt_id", + "msg_id", + "cmt_comment_id" + ], + "fillFactor": -1, + "indexTablespace": "", + "comment": "", + "isDeferrable": false, + "isDeferred": false, + "oldName": "commitcomment" + } + ], + "checks": [], + "excludes": [], + "triggers": [], + "partitionKeys": [], + "partitions": [] + }, + { + "objectType": "TableNormal_PGSQL", + "name": "commit_parents", + "comment": "", + "tablespace": "", + "isUnlogged": false, + "owner": "augur", + "inheritFromTables": [], + "hasOIDs": false, + "fillFactor": -1, + "oldName": "commit_parents", + "oid": 15486440, + "rows": 0, + "isInheritTables": false, + "cluster": "", + "ACL": "", + "isPartition": false, + "partitioningStrategy": "None", + "partitionOfSchema": "", + "partitionOfTable": "", + "partitionListValues": [], + "partitionRangeFromValues": [], + "partitionRangeToValues": [], + "foreignServer": "", + "foreignOptionDisplay": "", + "fields": [ + { + "objectType": "TableField_PGSQL", + "name": "cmt_id", + "type": "int8", + "length": 64, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": false, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "cmt_id", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 1, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "parent_id", + "type": "int8", + "length": 64, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": false, + "defaultType": "Others", + "defaultValue": "nextval('augur_data.commit_parents_parent_id_seq'::regclass)", + "comment": "", + "oldName": "parent_id", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 2, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "tool_source", + "type": "varchar", + "length": 255, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "tool_source", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 3, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "tool_version", + "type": "varchar", + "length": 255, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "tool_version", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 4, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "data_source", + "type": "varchar", + "length": 255, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "data_source", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 5, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "data_collection_date", + "type": "timestamp", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "Others", + "defaultValue": "CURRENT_TIMESTAMP", + "comment": "", + "oldName": "data_collection_date", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 6, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + } + ], + "indexes": [ + { + "objectType": "Index_PGSQL", + "name": "commit_parents_ibfk_1", + "comment": "", + "isClustered": false, + "isConcurrently": false, + "isUnique": false, + "fastUpdate": "", + "buffering": "", + "fillFactor": -1, + "method": "BTree", + "tableSpaceName": "", + "constraint": "", + "oldName": "commit_parents_ibfk_1", + "oid": 15486903, + "owner": "augur", + "brinPagesPerRange": -1, + "ginPendingListLimit": -1, + "tableName": "commit_parents", + "size": "8", + "fields": [ + { + "objectType": "IndexField_PGSQL", + "name": "cmt_id", + "collation": "", + "opClass": "int8_ops", + "opClassSchema": "pg_catalog", + "order": "ASC", + "nullSort": "NULLS LAST", + "oldName": "cmt_id", + "collationSchema": "" + } + ] + }, + { + "objectType": "Index_PGSQL", + "name": "commit_parents_ibfk_2", + "comment": "", + "isClustered": false, + "isConcurrently": false, + "isUnique": false, + "fastUpdate": "", + "buffering": "", + "fillFactor": -1, + "method": "BTree", + "tableSpaceName": "", + "constraint": "", + "oldName": "commit_parents_ibfk_2", + "oid": 15486904, + "owner": "augur", + "brinPagesPerRange": -1, + "ginPendingListLimit": -1, + "tableName": "commit_parents", + "size": "8", + "fields": [ + { + "objectType": "IndexField_PGSQL", + "name": "parent_id", + "collation": "", + "opClass": "int8_ops", + "opClassSchema": "pg_catalog", + "order": "ASC", + "nullSort": "NULLS LAST", + "oldName": "parent_id", + "collationSchema": "" + } + ] + } + ], + "rules": [], + "primaryKey": { + "objectType": "PrimaryKey_PGSQL", + "name": "commit_parents_pkey", + "fields": [ + "cmt_id", + "parent_id" + ], + "fillFactor": -1, + "indexTablespace": "", + "comment": "", + "isDeferrable": false, + "isDeferred": false, + "oldName": "commit_parents_pkey" + }, + "foreignKeys": [ + { + "objectType": "ForeignKey_PGSQL", + "name": "fk_commit_parents_commits_1", + "fields": [ + "cmt_id" + ], + "referenceSchema": "augur_data", + "referenceTable": "commits", + "referenceFields": [ + "cmt_id" + ], + "onDelete": "NO ACTION", + "onUpdate": "NO ACTION", + "comment": "", + "isMatchFull": false, + "isDeferrable": false, + "isDeferred": false, + "sourceCardinality": "ZeroOrManyRelationship", + "targetCardinality": "OneAndOnlyOneRelationship", + "oldName": "fk_commit_parents_commits_1" + }, + { + "objectType": "ForeignKey_PGSQL", + "name": "fk_commit_parents_commits_2", + "fields": [ + "parent_id" + ], + "referenceSchema": "augur_data", + "referenceTable": "commits", + "referenceFields": [ + "cmt_id" + ], + "onDelete": "NO ACTION", + "onUpdate": "NO ACTION", + "comment": "", + "isMatchFull": false, + "isDeferrable": false, + "isDeferred": false, + "sourceCardinality": "ZeroOrManyRelationship", + "targetCardinality": "OneAndOnlyOneRelationship", + "oldName": "fk_commit_parents_commits_2" + } + ], + "uniques": [], + "checks": [], + "excludes": [], + "triggers": [], + "partitionKeys": [], + "partitions": [] + }, + { + "objectType": "TableNormal_PGSQL", + "name": "commits", + "comment": "Starts with augur.analysis_data table and incorporates GHTorrent commit table attributes if different. \nCmt_id is from get\nThe author and committer ID’s are at the bottom of the table and not required for now because we want to focus on the facade schema’s properties over the ghtorrent properties when they are in conflict. ", + "tablespace": "", + "isUnlogged": false, + "owner": "augur", + "inheritFromTables": [], + "hasOIDs": false, + "fillFactor": -1, + "oldName": "commits", + "oid": 15486448, + "rows": 32914, + "isInheritTables": false, + "cluster": "", + "ACL": "", + "isPartition": false, + "partitioningStrategy": "None", + "partitionOfSchema": "", + "partitionOfTable": "", + "partitionListValues": [], + "partitionRangeFromValues": [], + "partitionRangeToValues": [], + "foreignServer": "", + "foreignOptionDisplay": "", + "fields": [ + { + "objectType": "TableField_PGSQL", + "name": "cmt_id", + "type": "int8", + "length": 64, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": false, + "defaultType": "Others", + "defaultValue": "nextval('augur_data.commits_cmt_id_seq'::regclass)", + "comment": "", + "oldName": "cmt_id", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 1, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "repo_id", + "type": "int8", + "length": 64, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": false, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "repo_id", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 2, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "cmt_commit_hash", + "type": "varchar", + "length": 80, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": false, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "cmt_commit_hash", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 3, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "cmt_author_name", + "type": "varchar", + "length": 128, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": false, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "cmt_author_name", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 4, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "cmt_author_raw_email", + "type": "varchar", + "length": 128, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": false, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "cmt_author_raw_email", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 5, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "cmt_author_email", + "type": "varchar", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": false, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "cmt_author_email", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 6, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "cmt_author_date", + "type": "varchar", + "length": 10, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": false, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "cmt_author_date", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 7, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "cmt_author_affiliation", + "type": "varchar", + "length": 128, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "Others", + "defaultValue": "'NULL'::character varying", + "comment": "", + "oldName": "cmt_author_affiliation", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 8, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "cmt_committer_name", + "type": "varchar", + "length": 128, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": false, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "cmt_committer_name", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 9, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "cmt_committer_raw_email", + "type": "varchar", + "length": 128, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": false, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "cmt_committer_raw_email", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 10, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "cmt_committer_email", + "type": "varchar", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": false, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "cmt_committer_email", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 11, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "cmt_committer_date", + "type": "varchar", + "length": 10, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": false, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "cmt_committer_date", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 12, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "cmt_committer_affiliation", + "type": "varchar", + "length": 128, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "Others", + "defaultValue": "'NULL'::character varying", + "comment": "", + "oldName": "cmt_committer_affiliation", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 13, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "cmt_added", + "type": "int4", + "length": 32, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": false, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "cmt_added", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 14, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "cmt_removed", + "type": "int4", + "length": 32, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": false, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "cmt_removed", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 15, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "cmt_whitespace", + "type": "int4", + "length": 32, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": false, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "cmt_whitespace", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 16, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "cmt_filename", + "type": "varchar", + "length": 4096, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": false, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "cmt_filename", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 17, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "cmt_date_attempted", + "type": "timestamp", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": false, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "cmt_date_attempted", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 18, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "cmt_ght_author_id", + "type": "int4", + "length": 32, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "cmt_ght_author_id", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 19, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "cmt_ght_committer_id", + "type": "int4", + "length": 32, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "cmt_ght_committer_id", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 20, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "cmt_ght_committed_at", + "type": "timestamp", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "cmt_ght_committed_at", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 21, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "tool_source", + "type": "varchar", + "length": 255, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "tool_source", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 22, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "tool_version", + "type": "varchar", + "length": 255, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "tool_version", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 23, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "data_source", + "type": "varchar", + "length": 255, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "data_source", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 24, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "data_collection_date", + "type": "timestamp", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "Others", + "defaultValue": "CURRENT_TIMESTAMP", + "comment": "", + "oldName": "data_collection_date", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 25, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "cmt_author_timestamp", + "type": "timestamptz", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "cmt_author_timestamp", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 26, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "cmt_committer_timestamp", + "type": "timestamptz", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "cmt_committer_timestamp", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 27, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + } + ], + "indexes": [ + { + "objectType": "Index_PGSQL", + "name": "author_affiliation", + "comment": "", + "isClustered": false, + "isConcurrently": false, + "isUnique": false, + "fastUpdate": "", + "buffering": "", + "fillFactor": -1, + "method": "Hash", + "tableSpaceName": "", + "constraint": "", + "oldName": "author_affiliation", + "oid": 15488180, + "owner": "augur", + "brinPagesPerRange": -1, + "ginPendingListLimit": -1, + "tableName": "commits", + "size": "1680", + "fields": [ + { + "objectType": "IndexField_PGSQL", + "name": "cmt_author_affiliation", + "collation": "default", + "opClass": "text_ops", + "opClassSchema": "pg_catalog", + "order": "ASC", + "nullSort": "NULLS LAST", + "oldName": "cmt_author_affiliation", + "collationSchema": "pg_catalog" + } + ] + }, + { + "objectType": "Index_PGSQL", + "name": "author_cntrb_id", + "comment": "", + "isClustered": false, + "isConcurrently": false, + "isUnique": false, + "fastUpdate": "", + "buffering": "", + "fillFactor": -1, + "method": "BTree", + "tableSpaceName": "", + "constraint": "", + "oldName": "author_cntrb_id", + "oid": 15488143, + "owner": "augur", + "brinPagesPerRange": -1, + "ginPendingListLimit": -1, + "tableName": "commits", + "size": "696", + "fields": [ + { + "objectType": "IndexField_PGSQL", + "name": "cmt_ght_author_id", + "collation": "", + "opClass": "int4_ops", + "opClassSchema": "pg_catalog", + "order": "ASC", + "nullSort": "NULLS LAST", + "oldName": "cmt_ght_author_id", + "collationSchema": "" + } + ] + }, + { + "objectType": "Index_PGSQL", + "name": "author_email,author_affiliation,author_date", + "comment": "", + "isClustered": false, + "isConcurrently": false, + "isUnique": false, + "fastUpdate": "", + "buffering": "", + "fillFactor": -1, + "method": "BTree", + "tableSpaceName": "", + "constraint": "", + "oldName": "author_email,author_affiliation,author_date", + "oid": 15488169, + "owner": "augur", + "brinPagesPerRange": -1, + "ginPendingListLimit": -1, + "tableName": "commits", + "size": "2440", + "fields": [ + { + "objectType": "IndexField_PGSQL", + "name": "cmt_author_email", + "collation": "default", + "opClass": "text_ops", + "opClassSchema": "pg_catalog", + "order": "ASC", + "nullSort": "NULLS LAST", + "oldName": "cmt_author_email", + "collationSchema": "pg_catalog" + }, + { + "objectType": "IndexField_PGSQL", + "name": "cmt_author_affiliation", + "collation": "default", + "opClass": "text_ops", + "opClassSchema": "pg_catalog", + "order": "ASC", + "nullSort": "NULLS LAST", + "oldName": "cmt_author_affiliation", + "collationSchema": "pg_catalog" + }, + { + "objectType": "IndexField_PGSQL", + "name": "cmt_author_date", + "collation": "default", + "opClass": "text_ops", + "opClassSchema": "pg_catalog", + "order": "ASC", + "nullSort": "NULLS LAST", + "oldName": "cmt_author_date", + "collationSchema": "pg_catalog" + } + ] + }, + { + "objectType": "Index_PGSQL", + "name": "author_raw_email", + "comment": "", + "isClustered": false, + "isConcurrently": false, + "isUnique": false, + "fastUpdate": "", + "buffering": "", + "fillFactor": -1, + "method": "BTree", + "tableSpaceName": "", + "constraint": "", + "oldName": "author_raw_email", + "oid": 15486909, + "owner": "augur", + "brinPagesPerRange": -1, + "ginPendingListLimit": -1, + "tableName": "commits", + "size": "1672", + "fields": [ + { + "objectType": "IndexField_PGSQL", + "name": "cmt_author_raw_email", + "collation": "default", + "opClass": "text_ops", + "opClassSchema": "pg_catalog", + "order": "ASC", + "nullSort": "NULLS LAST", + "oldName": "cmt_author_raw_email", + "collationSchema": "pg_catalog" + } + ] + }, + { + "objectType": "Index_PGSQL", + "name": "cmt-author-date-idx2", + "comment": "", + "isClustered": false, + "isConcurrently": false, + "isUnique": false, + "fastUpdate": "", + "buffering": "", + "fillFactor": -1, + "method": "BTree", + "tableSpaceName": "", + "constraint": "", + "oldName": "cmt-author-date-idx2", + "oid": 15488138, + "owner": "augur", + "brinPagesPerRange": -1, + "ginPendingListLimit": -1, + "tableName": "commits", + "size": "1344", + "fields": [ + { + "objectType": "IndexField_PGSQL", + "name": "cmt_author_date", + "collation": "default", + "opClass": "text_ops", + "opClassSchema": "pg_catalog", + "order": "ASC", + "nullSort": "NULLS LAST", + "oldName": "cmt_author_date", + "collationSchema": "pg_catalog" + } + ] + }, + { + "objectType": "Index_PGSQL", + "name": "cmt-committer-date-idx3", + "comment": "", + "isClustered": false, + "isConcurrently": false, + "isUnique": false, + "fastUpdate": "", + "buffering": "", + "fillFactor": -1, + "method": "BTree", + "tableSpaceName": "", + "constraint": "", + "oldName": "cmt-committer-date-idx3", + "oid": 15488139, + "owner": "augur", + "brinPagesPerRange": -1, + "ginPendingListLimit": -1, + "tableName": "commits", + "size": "1320", + "fields": [ + { + "objectType": "IndexField_PGSQL", + "name": "cmt_committer_date", + "collation": "default", + "opClass": "text_ops", + "opClassSchema": "pg_catalog", + "order": "ASC", + "nullSort": "NULLS LAST", + "oldName": "cmt_committer_date", + "collationSchema": "pg_catalog" + } + ] + }, + { + "objectType": "Index_PGSQL", + "name": "cmt_author-name-idx5", + "comment": "", + "isClustered": false, + "isConcurrently": false, + "isUnique": false, + "fastUpdate": "", + "buffering": "", + "fillFactor": -1, + "method": "BTree", + "tableSpaceName": "", + "constraint": "", + "oldName": "cmt_author-name-idx5", + "oid": 15488141, + "owner": "augur", + "brinPagesPerRange": -1, + "ginPendingListLimit": -1, + "tableName": "commits", + "size": "1336", + "fields": [ + { + "objectType": "IndexField_PGSQL", + "name": "cmt_committer_name", + "collation": "default", + "opClass": "text_ops", + "opClassSchema": "pg_catalog", + "order": "ASC", + "nullSort": "NULLS LAST", + "oldName": "cmt_committer_name", + "collationSchema": "pg_catalog" + } + ] + }, + { + "objectType": "Index_PGSQL", + "name": "cmt_author_contrib_worker", + "comment": "", + "isClustered": false, + "isConcurrently": false, + "isUnique": false, + "fastUpdate": "", + "buffering": "", + "fillFactor": -1, + "method": "BRIN", + "tableSpaceName": "", + "constraint": "", + "oldName": "cmt_author_contrib_worker", + "oid": 15488170, + "owner": "augur", + "brinPagesPerRange": -1, + "ginPendingListLimit": -1, + "tableName": "commits", + "size": "24", + "fields": [ + { + "objectType": "IndexField_PGSQL", + "name": "cmt_author_name", + "collation": "default", + "opClass": "text_minmax_ops", + "opClassSchema": "pg_catalog", + "order": "ASC", + "nullSort": "NULLS LAST", + "oldName": "cmt_author_name", + "collationSchema": "pg_catalog" + }, + { + "objectType": "IndexField_PGSQL", + "name": "cmt_author_email", + "collation": "default", + "opClass": "text_minmax_ops", + "opClassSchema": "pg_catalog", + "order": "ASC", + "nullSort": "NULLS LAST", + "oldName": "cmt_author_email", + "collationSchema": "pg_catalog" + }, + { + "objectType": "IndexField_PGSQL", + "name": "cmt_author_date", + "collation": "default", + "opClass": "text_minmax_ops", + "opClassSchema": "pg_catalog", + "order": "ASC", + "nullSort": "NULLS LAST", + "oldName": "cmt_author_date", + "collationSchema": "pg_catalog" + } + ] + }, + { + "objectType": "Index_PGSQL", + "name": "cmt_cmmter-name-idx4", + "comment": "", + "isClustered": false, + "isConcurrently": false, + "isUnique": false, + "fastUpdate": "", + "buffering": "", + "fillFactor": -1, + "method": "BTree", + "tableSpaceName": "", + "constraint": "", + "oldName": "cmt_cmmter-name-idx4", + "oid": 15488140, + "owner": "augur", + "brinPagesPerRange": -1, + "ginPendingListLimit": -1, + "tableName": "commits", + "size": "1344", + "fields": [ + { + "objectType": "IndexField_PGSQL", + "name": "cmt_author_name", + "collation": "default", + "opClass": "text_ops", + "opClassSchema": "pg_catalog", + "order": "ASC", + "nullSort": "NULLS LAST", + "oldName": "cmt_author_name", + "collationSchema": "pg_catalog" + } + ] + }, + { + "objectType": "Index_PGSQL", + "name": "cmt_commiter_contrib_worker", + "comment": "", + "isClustered": false, + "isConcurrently": false, + "isUnique": false, + "fastUpdate": "", + "buffering": "", + "fillFactor": -1, + "method": "BRIN", + "tableSpaceName": "", + "constraint": "", + "oldName": "cmt_commiter_contrib_worker", + "oid": 15488175, + "owner": "augur", + "brinPagesPerRange": -1, + "ginPendingListLimit": -1, + "tableName": "commits", + "size": "24", + "fields": [ + { + "objectType": "IndexField_PGSQL", + "name": "cmt_committer_name", + "collation": "default", + "opClass": "text_minmax_ops", + "opClassSchema": "pg_catalog", + "order": "ASC", + "nullSort": "NULLS LAST", + "oldName": "cmt_committer_name", + "collationSchema": "pg_catalog" + }, + { + "objectType": "IndexField_PGSQL", + "name": "cmt_committer_email", + "collation": "default", + "opClass": "text_minmax_ops", + "opClassSchema": "pg_catalog", + "order": "ASC", + "nullSort": "NULLS LAST", + "oldName": "cmt_committer_email", + "collationSchema": "pg_catalog" + }, + { + "objectType": "IndexField_PGSQL", + "name": "cmt_committer_date", + "collation": "default", + "opClass": "text_minmax_ops", + "opClassSchema": "pg_catalog", + "order": "ASC", + "nullSort": "NULLS LAST", + "oldName": "cmt_committer_date", + "collationSchema": "pg_catalog" + } + ] + }, + { + "objectType": "Index_PGSQL", + "name": "commited", + "comment": "", + "isClustered": false, + "isConcurrently": false, + "isUnique": false, + "fastUpdate": "", + "buffering": "", + "fillFactor": -1, + "method": "BTree", + "tableSpaceName": "", + "constraint": "", + "oldName": "commited", + "oid": 15486910, + "owner": "augur", + "brinPagesPerRange": -1, + "ginPendingListLimit": -1, + "tableName": "commits", + "size": "736", + "fields": [ + { + "objectType": "IndexField_PGSQL", + "name": "cmt_id", + "collation": "", + "opClass": "int8_ops", + "opClassSchema": "pg_catalog", + "order": "ASC", + "nullSort": "NULLS LAST", + "oldName": "cmt_id", + "collationSchema": "" + } + ] + }, + { + "objectType": "Index_PGSQL", + "name": "commits_idx_cmt_email_cmt_date_cmt_name", + "comment": "", + "isClustered": false, + "isConcurrently": false, + "isUnique": false, + "fastUpdate": "", + "buffering": "", + "fillFactor": -1, + "method": "BTree", + "tableSpaceName": "", + "constraint": "", + "oldName": "commits_idx_cmt_email_cmt_date_cmt_name", + "oid": 15488172, + "owner": "augur", + "brinPagesPerRange": -1, + "ginPendingListLimit": -1, + "tableName": "commits", + "size": "2904", + "fields": [ + { + "objectType": "IndexField_PGSQL", + "name": "cmt_author_email", + "collation": "default", + "opClass": "text_ops", + "opClassSchema": "pg_catalog", + "order": "ASC", + "nullSort": "NULLS LAST", + "oldName": "cmt_author_email", + "collationSchema": "pg_catalog" + }, + { + "objectType": "IndexField_PGSQL", + "name": "cmt_author_date", + "collation": "default", + "opClass": "text_ops", + "opClassSchema": "pg_catalog", + "order": "ASC", + "nullSort": "NULLS LAST", + "oldName": "cmt_author_date", + "collationSchema": "pg_catalog" + }, + { + "objectType": "IndexField_PGSQL", + "name": "cmt_author_name", + "collation": "default", + "opClass": "text_ops", + "opClassSchema": "pg_catalog", + "order": "ASC", + "nullSort": "NULLS LAST", + "oldName": "cmt_author_name", + "collationSchema": "pg_catalog" + } + ] + }, + { + "objectType": "Index_PGSQL", + "name": "commits_idx_cmt_email_cmt_date_cmt_name2", + "comment": "", + "isClustered": false, + "isConcurrently": false, + "isUnique": false, + "fastUpdate": "", + "buffering": "", + "fillFactor": -1, + "method": "BTree", + "tableSpaceName": "", + "constraint": "", + "oldName": "commits_idx_cmt_email_cmt_date_cmt_name2", + "oid": 15488177, + "owner": "augur", + "brinPagesPerRange": -1, + "ginPendingListLimit": -1, + "tableName": "commits", + "size": "2816", + "fields": [ + { + "objectType": "IndexField_PGSQL", + "name": "cmt_committer_email", + "collation": "default", + "opClass": "text_ops", + "opClassSchema": "pg_catalog", + "order": "ASC", + "nullSort": "NULLS LAST", + "oldName": "cmt_committer_email", + "collationSchema": "pg_catalog" + }, + { + "objectType": "IndexField_PGSQL", + "name": "cmt_committer_date", + "collation": "default", + "opClass": "text_ops", + "opClassSchema": "pg_catalog", + "order": "ASC", + "nullSort": "NULLS LAST", + "oldName": "cmt_committer_date", + "collationSchema": "pg_catalog" + }, + { + "objectType": "IndexField_PGSQL", + "name": "cmt_committer_name", + "collation": "default", + "opClass": "text_ops", + "opClassSchema": "pg_catalog", + "order": "ASC", + "nullSort": "NULLS LAST", + "oldName": "cmt_committer_name", + "collationSchema": "pg_catalog" + } + ] + }, + { + "objectType": "Index_PGSQL", + "name": "commits_idx_cmt_name_cmt_date2", + "comment": "", + "isClustered": false, + "isConcurrently": false, + "isUnique": false, + "fastUpdate": "", + "buffering": "", + "fillFactor": -1, + "method": "BTree", + "tableSpaceName": "", + "constraint": "", + "oldName": "commits_idx_cmt_name_cmt_date2", + "oid": 15488160, + "owner": "augur", + "brinPagesPerRange": -1, + "ginPendingListLimit": -1, + "tableName": "commits", + "size": "1912", + "fields": [ + { + "objectType": "IndexField_PGSQL", + "name": "cmt_author_name", + "collation": "default", + "opClass": "text_ops", + "opClassSchema": "pg_catalog", + "order": "ASC", + "nullSort": "NULLS LAST", + "oldName": "cmt_author_name", + "collationSchema": "pg_catalog" + }, + { + "objectType": "IndexField_PGSQL", + "name": "cmt_author_date", + "collation": "default", + "opClass": "text_ops", + "opClassSchema": "pg_catalog", + "order": "ASC", + "nullSort": "NULLS LAST", + "oldName": "cmt_author_date", + "collationSchema": "pg_catalog" + } + ] + }, + { + "objectType": "Index_PGSQL", + "name": "commits_idx_cmt_name_cmt_date_cmt_date3", + "comment": "", + "isClustered": false, + "isConcurrently": false, + "isUnique": false, + "fastUpdate": "", + "buffering": "", + "fillFactor": -1, + "method": "BTree", + "tableSpaceName": "", + "constraint": "", + "oldName": "commits_idx_cmt_name_cmt_date_cmt_date3", + "oid": 15488162, + "owner": "augur", + "brinPagesPerRange": -1, + "ginPendingListLimit": -1, + "tableName": "commits", + "size": "2416", + "fields": [ + { + "objectType": "IndexField_PGSQL", + "name": "cmt_committer_name", + "collation": "default", + "opClass": "text_ops", + "opClassSchema": "pg_catalog", + "order": "ASC", + "nullSort": "NULLS LAST", + "oldName": "cmt_committer_name", + "collationSchema": "pg_catalog" + }, + { + "objectType": "IndexField_PGSQL", + "name": "cmt_author_date", + "collation": "default", + "opClass": "text_ops", + "opClassSchema": "pg_catalog", + "order": "ASC", + "nullSort": "NULLS LAST", + "oldName": "cmt_author_date", + "collationSchema": "pg_catalog" + }, + { + "objectType": "IndexField_PGSQL", + "name": "cmt_committer_date", + "collation": "default", + "opClass": "text_ops", + "opClassSchema": "pg_catalog", + "order": "ASC", + "nullSort": "NULLS LAST", + "oldName": "cmt_committer_date", + "collationSchema": "pg_catalog" + } + ] + }, + { + "objectType": "Index_PGSQL", + "name": "commits_idx_repo_id_cmt_ema_cmt_dat_cmt_nam", + "comment": "", + "isClustered": false, + "isConcurrently": false, + "isUnique": false, + "fastUpdate": "", + "buffering": "", + "fillFactor": -1, + "method": "BTree", + "tableSpaceName": "", + "constraint": "", + "oldName": "commits_idx_repo_id_cmt_ema_cmt_dat_cmt_nam", + "oid": 15488171, + "owner": "augur", + "brinPagesPerRange": -1, + "ginPendingListLimit": -1, + "tableName": "commits", + "size": "3256", + "fields": [ + { + "objectType": "IndexField_PGSQL", + "name": "repo_id", + "collation": "", + "opClass": "int8_ops", + "opClassSchema": "pg_catalog", + "order": "ASC", + "nullSort": "NULLS LAST", + "oldName": "repo_id", + "collationSchema": "" + }, + { + "objectType": "IndexField_PGSQL", + "name": "cmt_author_email", + "collation": "default", + "opClass": "text_ops", + "opClassSchema": "pg_catalog", + "order": "ASC", + "nullSort": "NULLS LAST", + "oldName": "cmt_author_email", + "collationSchema": "pg_catalog" + }, + { + "objectType": "IndexField_PGSQL", + "name": "cmt_author_date", + "collation": "default", + "opClass": "text_ops", + "opClassSchema": "pg_catalog", + "order": "ASC", + "nullSort": "NULLS LAST", + "oldName": "cmt_author_date", + "collationSchema": "pg_catalog" + }, + { + "objectType": "IndexField_PGSQL", + "name": "cmt_author_name", + "collation": "default", + "opClass": "text_ops", + "opClassSchema": "pg_catalog", + "order": "ASC", + "nullSort": "NULLS LAST", + "oldName": "cmt_author_name", + "collationSchema": "pg_catalog" + } + ] + }, + { + "objectType": "Index_PGSQL", + "name": "commits_idx_repo_id_cmt_ema_cmt_dat_cmt_nam2", + "comment": "", + "isClustered": false, + "isConcurrently": false, + "isUnique": false, + "fastUpdate": "", + "buffering": "", + "fillFactor": -1, + "method": "BTree", + "tableSpaceName": "", + "constraint": "", + "oldName": "commits_idx_repo_id_cmt_ema_cmt_dat_cmt_nam2", + "oid": 15488176, + "owner": "augur", + "brinPagesPerRange": -1, + "ginPendingListLimit": -1, + "tableName": "commits", + "size": "3152", + "fields": [ + { + "objectType": "IndexField_PGSQL", + "name": "repo_id", + "collation": "", + "opClass": "int8_ops", + "opClassSchema": "pg_catalog", + "order": "ASC", + "nullSort": "NULLS LAST", + "oldName": "repo_id", + "collationSchema": "" + }, + { + "objectType": "IndexField_PGSQL", + "name": "cmt_committer_email", + "collation": "default", + "opClass": "text_ops", + "opClassSchema": "pg_catalog", + "order": "ASC", + "nullSort": "NULLS LAST", + "oldName": "cmt_committer_email", + "collationSchema": "pg_catalog" + }, + { + "objectType": "IndexField_PGSQL", + "name": "cmt_committer_date", + "collation": "default", + "opClass": "text_ops", + "opClassSchema": "pg_catalog", + "order": "ASC", + "nullSort": "NULLS LAST", + "oldName": "cmt_committer_date", + "collationSchema": "pg_catalog" + }, + { + "objectType": "IndexField_PGSQL", + "name": "cmt_committer_name", + "collation": "default", + "opClass": "text_ops", + "opClassSchema": "pg_catalog", + "order": "ASC", + "nullSort": "NULLS LAST", + "oldName": "cmt_committer_name", + "collationSchema": "pg_catalog" + } + ] + }, + { + "objectType": "Index_PGSQL", + "name": "commits_idx_repo_id_cmt_ema_cmt_nam_cmt_dat2", + "comment": "", + "isClustered": false, + "isConcurrently": false, + "isUnique": false, + "fastUpdate": "", + "buffering": "", + "fillFactor": -1, + "method": "BTree", + "tableSpaceName": "", + "constraint": "", + "oldName": "commits_idx_repo_id_cmt_ema_cmt_nam_cmt_dat2", + "oid": 15488173, + "owner": "augur", + "brinPagesPerRange": -1, + "ginPendingListLimit": -1, + "tableName": "commits", + "size": "3272", + "fields": [ + { + "objectType": "IndexField_PGSQL", + "name": "repo_id", + "collation": "", + "opClass": "int8_ops", + "opClassSchema": "pg_catalog", + "order": "ASC", + "nullSort": "NULLS LAST", + "oldName": "repo_id", + "collationSchema": "" + }, + { + "objectType": "IndexField_PGSQL", + "name": "cmt_author_email", + "collation": "default", + "opClass": "text_ops", + "opClassSchema": "pg_catalog", + "order": "ASC", + "nullSort": "NULLS LAST", + "oldName": "cmt_author_email", + "collationSchema": "pg_catalog" + }, + { + "objectType": "IndexField_PGSQL", + "name": "cmt_author_name", + "collation": "default", + "opClass": "text_ops", + "opClassSchema": "pg_catalog", + "order": "ASC", + "nullSort": "NULLS LAST", + "oldName": "cmt_author_name", + "collationSchema": "pg_catalog" + }, + { + "objectType": "IndexField_PGSQL", + "name": "cmt_author_date", + "collation": "default", + "opClass": "text_ops", + "opClassSchema": "pg_catalog", + "order": "ASC", + "nullSort": "NULLS LAST", + "oldName": "cmt_author_date", + "collationSchema": "pg_catalog" + } + ] + }, + { + "objectType": "Index_PGSQL", + "name": "commits_idx_repo_id_cmt_ema_cmt_nam_cmt_dat3", + "comment": "", + "isClustered": false, + "isConcurrently": false, + "isUnique": false, + "fastUpdate": "", + "buffering": "", + "fillFactor": -1, + "method": "BTree", + "tableSpaceName": "", + "constraint": "", + "oldName": "commits_idx_repo_id_cmt_ema_cmt_nam_cmt_dat3", + "oid": 15488178, + "owner": "augur", + "brinPagesPerRange": -1, + "ginPendingListLimit": -1, + "tableName": "commits", + "size": "3224", + "fields": [ + { + "objectType": "IndexField_PGSQL", + "name": "repo_id", + "collation": "", + "opClass": "int8_ops", + "opClassSchema": "pg_catalog", + "order": "ASC", + "nullSort": "NULLS LAST", + "oldName": "repo_id", + "collationSchema": "" + }, + { + "objectType": "IndexField_PGSQL", + "name": "cmt_committer_email", + "collation": "default", + "opClass": "text_ops", + "opClassSchema": "pg_catalog", + "order": "ASC", + "nullSort": "NULLS LAST", + "oldName": "cmt_committer_email", + "collationSchema": "pg_catalog" + }, + { + "objectType": "IndexField_PGSQL", + "name": "cmt_committer_name", + "collation": "default", + "opClass": "text_ops", + "opClassSchema": "pg_catalog", + "order": "ASC", + "nullSort": "NULLS LAST", + "oldName": "cmt_committer_name", + "collationSchema": "pg_catalog" + }, + { + "objectType": "IndexField_PGSQL", + "name": "cmt_author_date", + "collation": "default", + "opClass": "text_ops", + "opClassSchema": "pg_catalog", + "order": "ASC", + "nullSort": "NULLS LAST", + "oldName": "cmt_author_date", + "collationSchema": "pg_catalog" + } + ] + }, + { + "objectType": "Index_PGSQL", + "name": "committer_affiliation", + "comment": "", + "isClustered": false, + "isConcurrently": false, + "isUnique": false, + "fastUpdate": "", + "buffering": "", + "fillFactor": -1, + "method": "BTree", + "tableSpaceName": "", + "constraint": "", + "oldName": "committer_affiliation", + "oid": 15486911, + "owner": "augur", + "brinPagesPerRange": -1, + "ginPendingListLimit": -1, + "tableName": "commits", + "size": "696", + "fields": [ + { + "objectType": "IndexField_PGSQL", + "name": "cmt_committer_affiliation", + "collation": "default", + "opClass": "text_ops", + "opClassSchema": "pg_catalog", + "order": "ASC", + "nullSort": "NULLS LAST", + "oldName": "cmt_committer_affiliation", + "collationSchema": "pg_catalog" + } + ] + }, + { + "objectType": "Index_PGSQL", + "name": "committer_cntrb_id", + "comment": "", + "isClustered": false, + "isConcurrently": false, + "isUnique": false, + "fastUpdate": "", + "buffering": "", + "fillFactor": -1, + "method": "BTree", + "tableSpaceName": "", + "constraint": "", + "oldName": "committer_cntrb_id", + "oid": 15488142, + "owner": "augur", + "brinPagesPerRange": -1, + "ginPendingListLimit": -1, + "tableName": "commits", + "size": "696", + "fields": [ + { + "objectType": "IndexField_PGSQL", + "name": "cmt_ght_committer_id", + "collation": "", + "opClass": "int4_ops", + "opClassSchema": "pg_catalog", + "order": "ASC", + "nullSort": "NULLS LAST", + "oldName": "cmt_ght_committer_id", + "collationSchema": "" + } + ] + }, + { + "objectType": "Index_PGSQL", + "name": "committer_email,committer_affiliation,committer_date", + "comment": "", + "isClustered": false, + "isConcurrently": false, + "isUnique": false, + "fastUpdate": "", + "buffering": "", + "fillFactor": -1, + "method": "BTree", + "tableSpaceName": "", + "constraint": "", + "oldName": "committer_email,committer_affiliation,committer_date", + "oid": 15488174, + "owner": "augur", + "brinPagesPerRange": -1, + "ginPendingListLimit": -1, + "tableName": "commits", + "size": "2504", + "fields": [ + { + "objectType": "IndexField_PGSQL", + "name": "cmt_committer_email", + "collation": "default", + "opClass": "text_ops", + "opClassSchema": "pg_catalog", + "order": "ASC", + "nullSort": "NULLS LAST", + "oldName": "cmt_committer_email", + "collationSchema": "pg_catalog" + }, + { + "objectType": "IndexField_PGSQL", + "name": "cmt_committer_affiliation", + "collation": "default", + "opClass": "text_ops", + "opClassSchema": "pg_catalog", + "order": "ASC", + "nullSort": "NULLS LAST", + "oldName": "cmt_committer_affiliation", + "collationSchema": "pg_catalog" + }, + { + "objectType": "IndexField_PGSQL", + "name": "cmt_committer_date", + "collation": "default", + "opClass": "text_ops", + "opClassSchema": "pg_catalog", + "order": "ASC", + "nullSort": "NULLS LAST", + "oldName": "cmt_committer_date", + "collationSchema": "pg_catalog" + } + ] + }, + { + "objectType": "Index_PGSQL", + "name": "committer_raw_email", + "comment": "", + "isClustered": false, + "isConcurrently": false, + "isUnique": false, + "fastUpdate": "", + "buffering": "", + "fillFactor": -1, + "method": "BTree", + "tableSpaceName": "", + "constraint": "", + "oldName": "committer_raw_email", + "oid": 15486913, + "owner": "augur", + "brinPagesPerRange": -1, + "ginPendingListLimit": -1, + "tableName": "commits", + "size": "1664", + "fields": [ + { + "objectType": "IndexField_PGSQL", + "name": "cmt_committer_raw_email", + "collation": "default", + "opClass": "text_ops", + "opClassSchema": "pg_catalog", + "order": "ASC", + "nullSort": "NULLS LAST", + "oldName": "cmt_committer_raw_email", + "collationSchema": "pg_catalog" + } + ] + }, + { + "objectType": "Index_PGSQL", + "name": "repo_id,commit", + "comment": "", + "isClustered": false, + "isConcurrently": false, + "isUnique": false, + "fastUpdate": "", + "buffering": "", + "fillFactor": -1, + "method": "BTree", + "tableSpaceName": "", + "constraint": "", + "oldName": "repo_id,commit", + "oid": 15486914, + "owner": "augur", + "brinPagesPerRange": -1, + "ginPendingListLimit": -1, + "tableName": "commits", + "size": "3200", + "fields": [ + { + "objectType": "IndexField_PGSQL", + "name": "repo_id", + "collation": "", + "opClass": "int8_ops", + "opClassSchema": "pg_catalog", + "order": "ASC", + "nullSort": "NULLS LAST", + "oldName": "repo_id", + "collationSchema": "" + }, + { + "objectType": "IndexField_PGSQL", + "name": "cmt_commit_hash", + "collation": "default", + "opClass": "text_ops", + "opClassSchema": "pg_catalog", + "order": "ASC", + "nullSort": "NULLS LAST", + "oldName": "cmt_commit_hash", + "collationSchema": "pg_catalog" + } + ] + } + ], + "rules": [], + "primaryKey": { + "objectType": "PrimaryKey_PGSQL", + "name": "commits_pkey", + "fields": [ + "cmt_id" + ], + "fillFactor": -1, + "indexTablespace": "", + "comment": "", + "isDeferrable": false, + "isDeferred": false, + "oldName": "commits_pkey" + }, + "foreignKeys": [ + { + "objectType": "ForeignKey_PGSQL", + "name": "fk_commits_contributors_1", + "fields": [ + "cmt_ght_author_id" + ], + "referenceSchema": "augur_data", + "referenceTable": "contributors", + "referenceFields": [ + "cntrb_id" + ], + "onDelete": "NO ACTION", + "onUpdate": "NO ACTION", + "comment": "", + "isMatchFull": false, + "isDeferrable": false, + "isDeferred": false, + "sourceCardinality": "ZeroOrManyRelationship", + "targetCardinality": "ZeroOrOneRelationship", + "oldName": "fk_commits_contributors_1" + }, + { + "objectType": "ForeignKey_PGSQL", + "name": "fk_commits_contributors_2", + "fields": [ + "cmt_ght_committer_id" + ], + "referenceSchema": "augur_data", + "referenceTable": "contributors", + "referenceFields": [ + "cntrb_id" + ], + "onDelete": "NO ACTION", + "onUpdate": "NO ACTION", + "comment": "", + "isMatchFull": false, + "isDeferrable": false, + "isDeferred": false, + "sourceCardinality": "ZeroOrManyRelationship", + "targetCardinality": "ZeroOrOneRelationship", + "oldName": "fk_commits_contributors_2" + }, + { + "objectType": "ForeignKey_PGSQL", + "name": "fk_commits_repo_1", + "fields": [ + "repo_id" + ], + "referenceSchema": "augur_data", + "referenceTable": "repo", + "referenceFields": [ + "repo_id" + ], + "onDelete": "NO ACTION", + "onUpdate": "NO ACTION", + "comment": "", + "isMatchFull": false, + "isDeferrable": false, + "isDeferred": false, + "sourceCardinality": "ZeroOrManyRelationship", + "targetCardinality": "OneAndOnlyOneRelationship", + "oldName": "fk_commits_repo_1" + } + ], + "uniques": [], + "checks": [], + "excludes": [], + "triggers": [], + "partitionKeys": [], + "partitions": [] + }, + { + "objectType": "TableNormal_PGSQL", + "name": "contributor_affiliations", + "comment": "", + "tablespace": "", + "isUnlogged": false, + "owner": "augur", + "inheritFromTables": [], + "hasOIDs": false, + "fillFactor": -1, + "oldName": "contributor_affiliations", + "oid": 15486458, + "rows": 703, + "isInheritTables": false, + "cluster": "", + "ACL": "", + "isPartition": false, + "partitioningStrategy": "None", + "partitionOfSchema": "", + "partitionOfTable": "", + "partitionListValues": [], + "partitionRangeFromValues": [], + "partitionRangeToValues": [], + "foreignServer": "", + "foreignOptionDisplay": "", + "fields": [ + { + "objectType": "TableField_PGSQL", + "name": "ca_id", + "type": "int8", + "length": 64, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": false, + "defaultType": "Others", + "defaultValue": "nextval('augur_data.contributor_affiliations_ca_id_seq'::regclass)", + "comment": "", + "oldName": "ca_id", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 2, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "ca_domain", + "type": "varchar", + "length": 64, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": false, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "ca_domain", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 3, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "ca_start_date", + "type": "date", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "Others", + "defaultValue": "'1970-01-01'::date", + "comment": "", + "oldName": "ca_start_date", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 5, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "tool_source", + "type": "varchar", + "length": 255, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "tool_source", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 8, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "tool_version", + "type": "varchar", + "length": 255, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "tool_version", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 9, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "data_source", + "type": "varchar", + "length": 255, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "data_source", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 10, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "data_collection_date", + "type": "timestamp", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "Others", + "defaultValue": "CURRENT_TIMESTAMP", + "comment": "", + "oldName": "data_collection_date", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 11, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "ca_last_used", + "type": "timestamp", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": false, + "defaultType": "Others", + "defaultValue": "CURRENT_TIMESTAMP", + "comment": "", + "oldName": "ca_last_used", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 12, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "ca_affiliation", + "type": "varchar", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "ca_affiliation", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 13, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "ca_active", + "type": "int2", + "length": 16, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "Others", + "defaultValue": "1", + "comment": "", + "oldName": "ca_active", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 14, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + } + ], + "indexes": [], + "rules": [], + "primaryKey": { + "objectType": "PrimaryKey_PGSQL", + "name": "contributor_affiliations_pkey", + "fields": [ + "ca_id" + ], + "fillFactor": -1, + "indexTablespace": "", + "comment": "", + "isDeferrable": false, + "isDeferred": false, + "oldName": "contributor_affiliations_pkey" + }, + "foreignKeys": [], + "uniques": [ + { + "objectType": "Unique_PGSQL", + "name": "unique_domain", + "fields": [ + "ca_domain" + ], + "fillFactor": -1, + "indexTablespace": "", + "comment": "Only one row should exist for any given top level domain or subdomain. ", + "isDeferrable": false, + "isDeferred": false, + "oldName": "unique_domain" + } + ], + "checks": [], + "excludes": [], + "triggers": [], + "partitionKeys": [], + "partitions": [] + }, + { + "objectType": "TableNormal_PGSQL", + "name": "contributor_repo", + "comment": "Developed in Partnership with Andrew Brain. \nFrom: [\n {\n \"login\": \"octocat\",\n \"id\": 1,\n \"node_id\": \"MDQ6VXNlcjE=\",\n \"avatar_url\": \"https://github.com/images/error/octocat_happy.gif\",\n \"gravatar_id\": \"\",\n \"url\": \"https://api.github.com/users/octocat\",\n \"html_url\": \"https://github.com/octocat\",\n \"followers_url\": \"https://api.github.com/users/octocat/followers\",\n \"following_url\": \"https://api.github.com/users/octocat/following{/other_user}\",\n \"gists_url\": \"https://api.github.com/users/octocat/gists{/gist_id}\",\n \"starred_url\": \"https://api.github.com/users/octocat/starred{/owner}{/repo}\",\n \"subscriptions_url\": \"https://api.github.com/users/octocat/subscriptions\",\n \"organizations_url\": \"https://api.github.com/users/octocat/orgs\",\n \"repos_url\": \"https://api.github.com/users/octocat/repos\",\n \"events_url\": \"https://api.github.com/users/octocat/events{/privacy}\",\n \"received_events_url\": \"https://api.github.com/users/octocat/received_events\",\n \"type\": \"User\",\n \"site_admin\": false\n }\n]\n", + "tablespace": "", + "isUnlogged": false, + "owner": "augur", + "inheritFromTables": [], + "hasOIDs": false, + "fillFactor": -1, + "oldName": "contributor_repo", + "oid": 15488491, + "rows": 0, + "isInheritTables": false, + "cluster": "", + "ACL": "", + "isPartition": false, + "partitioningStrategy": "None", + "partitionOfSchema": "", + "partitionOfTable": "", + "partitionListValues": [], + "partitionRangeFromValues": [], + "partitionRangeToValues": [], + "foreignServer": "", + "foreignOptionDisplay": "", + "fields": [ + { + "objectType": "TableField_PGSQL", + "name": "cntrb_repo_id", + "type": "int8", + "length": 64, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": false, + "defaultType": "Others", + "defaultValue": "nextval('augur_data.contributor_repo_cntrb_repo_id_seq'::regclass)", + "comment": "", + "oldName": "cntrb_repo_id", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 1, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "cntrb_id", + "type": "int8", + "length": 64, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": false, + "defaultType": "None", + "defaultValue": "", + "comment": "This is not null because what is the point without the contributor in this table? ", + "oldName": "cntrb_id", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 2, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "repo_git", + "type": "varchar", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": false, + "defaultType": "None", + "defaultValue": "", + "comment": "Similar to cntrb_id, we need this data for the table to have meaningful data. ", + "oldName": "repo_git", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 3, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "repo_name", + "type": "varchar", + "length": 255, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": false, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "repo_name", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 4, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "gh_repo_id", + "type": "int8", + "length": 64, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": false, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "gh_repo_id", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 5, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "cntrb_category", + "type": "varchar", + "length": 255, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "cntrb_category", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 6, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "event_id", + "type": "int8", + "length": 64, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "event_id", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 7, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "created_at", + "type": "timestamp", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "created_at", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 8, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "tool_source", + "type": "varchar", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "tool_source", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 9, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "tool_version", + "type": "varchar", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "tool_version", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 10, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "data_source", + "type": "varchar", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "data_source", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 11, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "data_collection_date", + "type": "timestamp", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "Others", + "defaultValue": "CURRENT_TIMESTAMP", + "comment": "", + "oldName": "data_collection_date", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 12, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + } + ], + "indexes": [], + "rules": [], + "primaryKey": { + "objectType": "PrimaryKey_PGSQL", + "name": "cntrb_repo_id_key", + "fields": [ + "cntrb_repo_id" + ], + "fillFactor": -1, + "indexTablespace": "", + "comment": "", + "isDeferrable": false, + "isDeferred": false, + "oldName": "cntrb_repo_id_key" + }, + "foreignKeys": [ + { + "objectType": "ForeignKey_PGSQL", + "name": "fk_contributor_repo_contributors_1", + "fields": [ + "cntrb_id" + ], + "referenceSchema": "augur_data", + "referenceTable": "contributors", + "referenceFields": [ + "cntrb_id" + ], + "onDelete": "RESTRICT", + "onUpdate": "CASCADE", + "comment": "", + "isMatchFull": false, + "isDeferrable": false, + "isDeferred": false, + "sourceCardinality": "ZeroOrManyRelationship", + "targetCardinality": "OneAndOnlyOneRelationship", + "oldName": "fk_contributor_repo_contributors_1" + } + ], + "uniques": [ + { + "objectType": "Unique_PGSQL", + "name": "eventer", + "fields": [ + "event_id", + "tool_version" + ], + "fillFactor": -1, + "indexTablespace": "", + "comment": "", + "isDeferrable": false, + "isDeferred": false, + "oldName": "eventer" + } + ], + "checks": [], + "excludes": [], + "triggers": [], + "partitionKeys": [], + "partitions": [] + }, + { + "objectType": "TableNormal_PGSQL", + "name": "contributors", + "comment": "For GitHub, this should be repeated from gh_login. for other systems, it should be that systems login. ", + "tablespace": "", + "isUnlogged": false, + "owner": "augur", + "inheritFromTables": [], + "hasOIDs": false, + "fillFactor": -1, + "oldName": "contributors", + "oid": 15486469, + "rows": 3784, + "isInheritTables": false, + "cluster": "", + "ACL": "", + "isPartition": false, + "partitioningStrategy": "None", + "partitionOfSchema": "", + "partitionOfTable": "", + "partitionListValues": [], + "partitionRangeFromValues": [], + "partitionRangeToValues": [], + "foreignServer": "", + "foreignOptionDisplay": "", + "fields": [ + { + "objectType": "TableField_PGSQL", + "name": "cntrb_id", + "type": "int8", + "length": 64, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": false, + "defaultType": "Others", + "defaultValue": "nextval('augur_data.contributors_cntrb_id_seq'::regclass)", + "comment": "", + "oldName": "cntrb_id", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 1, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "cntrb_login", + "type": "varchar", + "length": 255, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "Will be a double population with the same value as gh_login for github, but the local value for other systems. ", + "oldName": "cntrb_login", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 2, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "cntrb_email", + "type": "varchar", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "This needs to be here for matching contributor ids, which are augur, to the commit information. ", + "oldName": "cntrb_email", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 3, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "cntrb_company", + "type": "varchar", + "length": 255, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "Others", + "defaultValue": "NULL::character varying", + "comment": "", + "oldName": "cntrb_company", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 4, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "cntrb_created_at", + "type": "timestamp", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "cntrb_created_at", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 5, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "cntrb_type", + "type": "varchar", + "length": 255, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "Present in another models. It is not currently used in Augur. ", + "oldName": "cntrb_type", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 6, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "cntrb_fake", + "type": "int2", + "length": 16, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "Others", + "defaultValue": "0", + "comment": "", + "oldName": "cntrb_fake", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 7, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "cntrb_deleted", + "type": "int2", + "length": 16, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "Others", + "defaultValue": "0", + "comment": "", + "oldName": "cntrb_deleted", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 8, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "cntrb_long", + "type": "numeric", + "length": 11, + "decimals": 8, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "Others", + "defaultValue": "NULL::numeric", + "comment": "", + "oldName": "cntrb_long", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 9, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "cntrb_lat", + "type": "numeric", + "length": 10, + "decimals": 8, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "Others", + "defaultValue": "NULL::numeric", + "comment": "", + "oldName": "cntrb_lat", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 10, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "cntrb_country_code", + "type": "char", + "length": 3, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "Others", + "defaultValue": "NULL::bpchar", + "comment": "", + "oldName": "cntrb_country_code", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 11, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "cntrb_state", + "type": "varchar", + "length": 255, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "Others", + "defaultValue": "NULL::character varying", + "comment": "", + "oldName": "cntrb_state", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 12, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "cntrb_city", + "type": "varchar", + "length": 255, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "Others", + "defaultValue": "NULL::character varying", + "comment": "", + "oldName": "cntrb_city", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 13, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "cntrb_location", + "type": "varchar", + "length": 255, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "Others", + "defaultValue": "NULL::character varying", + "comment": "", + "oldName": "cntrb_location", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 14, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "cntrb_canonical", + "type": "varchar", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "cntrb_canonical", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 15, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "gh_user_id", + "type": "int8", + "length": 64, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "gh_user_id", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 16, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "gh_login", + "type": "varchar", + "length": 255, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "populated with the github user name for github originated data. ", + "oldName": "gh_login", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 17, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "gh_url", + "type": "varchar", + "length": 255, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "gh_url", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 18, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "gh_html_url", + "type": "varchar", + "length": 255, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "gh_html_url", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 19, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "gh_node_id", + "type": "varchar", + "length": 255, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "gh_node_id", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 20, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "gh_avatar_url", + "type": "varchar", + "length": 4000, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "gh_avatar_url", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 21, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "gh_gravatar_id", + "type": "varchar", + "length": 255, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "gh_gravatar_id", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 22, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "gh_followers_url", + "type": "varchar", + "length": 4000, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "gh_followers_url", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 23, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "gh_following_url", + "type": "varchar", + "length": 4000, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "gh_following_url", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 24, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "gh_gists_url", + "type": "varchar", + "length": 4000, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "gh_gists_url", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 25, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "gh_starred_url", + "type": "varchar", + "length": 4000, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "gh_starred_url", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 26, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "gh_subscriptions_url", + "type": "varchar", + "length": 4000, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "gh_subscriptions_url", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 27, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "gh_organizations_url", + "type": "varchar", + "length": 4000, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "gh_organizations_url", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 28, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "gh_repos_url", + "type": "varchar", + "length": 4000, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "gh_repos_url", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 29, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "gh_events_url", + "type": "varchar", + "length": 4000, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "gh_events_url", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 30, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "gh_received_events_url", + "type": "varchar", + "length": 4000, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "gh_received_events_url", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 31, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "gh_type", + "type": "varchar", + "length": 255, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "gh_type", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 32, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "gh_site_admin", + "type": "varchar", + "length": 255, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "gh_site_admin", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 33, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "tool_source", + "type": "varchar", + "length": 255, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "tool_source", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 34, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "tool_version", + "type": "varchar", + "length": 255, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "tool_version", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 35, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "data_source", + "type": "varchar", + "length": 255, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "data_source", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 36, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "data_collection_date", + "type": "timestamp", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "Others", + "defaultValue": "CURRENT_TIMESTAMP", + "comment": "", + "oldName": "data_collection_date", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 37, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "cntrb_full_name", + "type": "varchar", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "cntrb_full_name", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 38, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "cntrb_last_used", + "type": "timestamptz", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "Others", + "defaultValue": "NULL::timestamp with time zone", + "comment": "", + "oldName": "cntrb_last_used", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 39, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "gl_id", + "type": "int8", + "length": 64, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "\"id\" value from these API calls to GitLab, all for the same user\n\nhttps://gitlab.com/api/v4/users?username=computationalmystic\nhttps://gitlab.com/api/v4/users?search=s@goggins.com\nhttps://gitlab.com/api/v4/users?search=outdoors@acm.org\n\n[\n {\n \"id\": 5481034,\n \"name\": \"sean goggins\",\n \"username\": \"computationalmystic\",\n \"state\": \"active\",\n \"avatar_url\": \"https://secure.gravatar.com/avatar/fb1fb43953a6059df2fe8d94b21d575c?s=80&d=identicon\",\n \"web_url\": \"https://gitlab.com/computationalmystic\"\n }\n]", + "oldName": "gl_id", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 40, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "gl_full_name", + "type": "varchar", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "“name” value from these API calls to GitLab, all for the same user\n\nhttps://gitlab.com/api/v4/users?username=computationalmystic\nhttps://gitlab.com/api/v4/users?search=s@goggins.com\nhttps://gitlab.com/api/v4/users?search=outdoors@acm.org\n\n[\n {\n \"id\": 5481034,\n \"name\": \"sean goggins\",\n \"username\": \"computationalmystic\",\n \"state\": \"active\",\n \"avatar_url\": \"https://secure.gravatar.com/avatar/fb1fb43953a6059df2fe8d94b21d575c?s=80&d=identicon\",\n \"web_url\": \"https://gitlab.com/computationalmystic\"\n }\n]", + "oldName": "gl_full_name", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 41, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": {}, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "gl_username", + "type": "varchar", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "“username” value from these API calls to GitLab, all for the same user\n\nhttps://gitlab.com/api/v4/users?username=computationalmystic\nhttps://gitlab.com/api/v4/users?search=s@goggins.com\nhttps://gitlab.com/api/v4/users?search=outdoors@acm.org\n\n[\n {\n \"id\": 5481034,\n \"name\": \"sean goggins\",\n \"username\": \"computationalmystic\",\n \"state\": \"active\",\n \"avatar_url\": \"https://secure.gravatar.com/avatar/fb1fb43953a6059df2fe8d94b21d575c?s=80&d=identicon\",\n \"web_url\": \"https://gitlab.com/computationalmystic\"\n }\n]", + "oldName": "gl_username", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 42, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": true, + "identityMaximum": 0, + "hasNoIdentityMaxValue": {}, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "gl_state", + "type": "varchar", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "“state” value from these API calls to GitLab, all for the same user\n\nhttps://gitlab.com/api/v4/users?username=computationalmystic\nhttps://gitlab.com/api/v4/users?search=s@goggins.com\nhttps://gitlab.com/api/v4/users?search=outdoors@acm.org\n\n[\n {\n \"id\": 5481034,\n \"name\": \"sean goggins\",\n \"username\": \"computationalmystic\",\n \"state\": \"active\",\n \"avatar_url\": \"https://secure.gravatar.com/avatar/fb1fb43953a6059df2fe8d94b21d575c?s=80&d=identicon\",\n \"web_url\": \"https://gitlab.com/computationalmystic\"\n }\n]", + "oldName": "gl_state", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 43, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": {}, + "identityMaximum": 0, + "hasNoIdentityMaxValue": 0, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "gl_avatar_url", + "type": "varchar", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "“avatar_url” value from these API calls to GitLab, all for the same user\n\nhttps://gitlab.com/api/v4/users?username=computationalmystic\nhttps://gitlab.com/api/v4/users?search=s@goggins.com\nhttps://gitlab.com/api/v4/users?search=outdoors@acm.org\n\n[\n {\n \"id\": 5481034,\n \"name\": \"sean goggins\",\n \"username\": \"computationalmystic\",\n \"state\": \"active\",\n \"avatar_url\": \"https://secure.gravatar.com/avatar/fb1fb43953a6059df2fe8d94b21d575c?s=80&d=identicon\",\n \"web_url\": \"https://gitlab.com/computationalmystic\"\n }\n]", + "oldName": "gl_avatar_url", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 44, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": "", + "identityMaximum": 0, + "hasNoIdentityMaxValue": true, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "gl_web_url", + "type": "varchar", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "“web_url” value from these API calls to GitLab, all for the same user\n\nhttps://gitlab.com/api/v4/users?username=computationalmystic\nhttps://gitlab.com/api/v4/users?search=s@goggins.com\nhttps://gitlab.com/api/v4/users?search=outdoors@acm.org\n\n[\n {\n \"id\": 5481034,\n \"name\": \"sean goggins\",\n \"username\": \"computationalmystic\",\n \"state\": \"active\",\n \"avatar_url\": \"https://secure.gravatar.com/avatar/fb1fb43953a6059df2fe8d94b21d575c?s=80&d=identicon\",\n \"web_url\": \"https://gitlab.com/computationalmystic\"\n }\n]", + "oldName": "gl_web_url", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 45, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": {}, + "identityMaximum": 0, + "hasNoIdentityMaxValue": {}, + "isIdentityCycle": false + } + ], + "indexes": [ + { + "objectType": "Index_PGSQL", + "name": "cnt-fullname", + "comment": "", + "isClustered": false, + "isConcurrently": false, + "isUnique": false, + "fastUpdate": "", + "buffering": "", + "fillFactor": -1, + "method": "Hash", + "tableSpaceName": "", + "constraint": "", + "oldName": "cnt-fullname", + "oid": 15487993, + "owner": "augur", + "brinPagesPerRange": -1, + "ginPendingListLimit": -1, + "tableName": "contributors", + "size": "32", + "fields": [ + { + "objectType": "IndexField_PGSQL", + "name": "cntrb_full_name", + "collation": "default", + "opClass": "text_ops", + "opClassSchema": "pg_catalog", + "order": "ASC", + "nullSort": "NULLS LAST", + "oldName": "cntrb_full_name", + "collationSchema": "pg_catalog" + } + ] + }, + { + "objectType": "Index_PGSQL", + "name": "cntrb-theemail", + "comment": "", + "isClustered": false, + "isConcurrently": false, + "isUnique": false, + "fastUpdate": "", + "buffering": "", + "fillFactor": -1, + "method": "Hash", + "tableSpaceName": "", + "constraint": "", + "oldName": "cntrb-theemail", + "oid": 15488164, + "owner": "augur", + "brinPagesPerRange": -1, + "ginPendingListLimit": -1, + "tableName": "contributors", + "size": "88", + "fields": [ + { + "objectType": "IndexField_PGSQL", + "name": "cntrb_email", + "collation": "default", + "opClass": "text_ops", + "opClassSchema": "pg_catalog", + "order": "ASC", + "nullSort": "NULLS LAST", + "oldName": "cntrb_email", + "collationSchema": "pg_catalog" + } + ] + }, + { + "objectType": "Index_PGSQL", + "name": "cntrb_canonica-idx11", + "comment": "", + "isClustered": false, + "isConcurrently": false, + "isUnique": false, + "fastUpdate": "", + "buffering": "", + "fillFactor": -1, + "method": "BTree", + "tableSpaceName": "", + "constraint": "", + "oldName": "cntrb_canonica-idx11", + "oid": 15488581, + "owner": "augur", + "brinPagesPerRange": -1, + "ginPendingListLimit": -1, + "tableName": "contributors", + "size": "136", + "fields": [ + { + "objectType": "IndexField_PGSQL", + "name": "cntrb_canonical", + "collation": "default", + "opClass": "text_ops", + "opClassSchema": "pg_catalog", + "order": "ASC", + "nullSort": "NULLS LAST", + "oldName": "cntrb_canonical", + "collationSchema": "pg_catalog" + } + ] + }, + { + "objectType": "Index_PGSQL", + "name": "cntrb_login_platform_index", + "comment": "", + "isClustered": false, + "isConcurrently": false, + "isUnique": false, + "fastUpdate": "", + "buffering": "", + "fillFactor": -1, + "method": "BTree", + "tableSpaceName": "", + "constraint": "", + "oldName": "cntrb_login_platform_index", + "oid": 15487997, + "owner": "augur", + "brinPagesPerRange": -1, + "ginPendingListLimit": -1, + "tableName": "contributors", + "size": "168", + "fields": [ + { + "objectType": "IndexField_PGSQL", + "name": "cntrb_login", + "collation": "default", + "opClass": "text_ops", + "opClassSchema": "pg_catalog", + "order": "ASC", + "nullSort": "NULLS LAST", + "oldName": "cntrb_login", + "collationSchema": "pg_catalog" + } + ] + }, + { + "objectType": "Index_PGSQL", + "name": "contributor_delete_finder", + "comment": "", + "isClustered": false, + "isConcurrently": false, + "isUnique": false, + "fastUpdate": "", + "buffering": "", + "fillFactor": -1, + "method": "BRIN", + "tableSpaceName": "", + "constraint": "", + "oldName": "contributor_delete_finder", + "oid": 15488165, + "owner": "augur", + "brinPagesPerRange": -1, + "ginPendingListLimit": -1, + "tableName": "contributors", + "size": "24", + "fields": [ + { + "objectType": "IndexField_PGSQL", + "name": "cntrb_id", + "collation": "", + "opClass": "int8_minmax_ops", + "opClassSchema": "pg_catalog", + "order": "ASC", + "nullSort": "NULLS LAST", + "oldName": "cntrb_id", + "collationSchema": "" + }, + { + "objectType": "IndexField_PGSQL", + "name": "cntrb_email", + "collation": "default", + "opClass": "text_minmax_ops", + "opClassSchema": "pg_catalog", + "order": "ASC", + "nullSort": "NULLS LAST", + "oldName": "cntrb_email", + "collationSchema": "pg_catalog" + } + ] + }, + { + "objectType": "Index_PGSQL", + "name": "contributor_worker_email_finder", + "comment": "", + "isClustered": false, + "isConcurrently": false, + "isUnique": false, + "fastUpdate": "", + "buffering": "", + "fillFactor": -1, + "method": "BRIN", + "tableSpaceName": "", + "constraint": "", + "oldName": "contributor_worker_email_finder", + "oid": 15488167, + "owner": "augur", + "brinPagesPerRange": -1, + "ginPendingListLimit": -1, + "tableName": "contributors", + "size": "24", + "fields": [ + { + "objectType": "IndexField_PGSQL", + "name": "cntrb_email", + "collation": "default", + "opClass": "text_minmax_ops", + "opClassSchema": "pg_catalog", + "order": "ASC", + "nullSort": "NULLS LAST", + "oldName": "cntrb_email", + "collationSchema": "pg_catalog" + } + ] + }, + { + "objectType": "Index_PGSQL", + "name": "contributor_worker_finder", + "comment": "", + "isClustered": false, + "isConcurrently": false, + "isUnique": false, + "fastUpdate": "", + "buffering": "", + "fillFactor": -1, + "method": "BRIN", + "tableSpaceName": "", + "constraint": "", + "oldName": "contributor_worker_finder", + "oid": 15488166, + "owner": "augur", + "brinPagesPerRange": -1, + "ginPendingListLimit": -1, + "tableName": "contributors", + "size": "24", + "fields": [ + { + "objectType": "IndexField_PGSQL", + "name": "cntrb_login", + "collation": "default", + "opClass": "text_minmax_ops", + "opClassSchema": "pg_catalog", + "order": "ASC", + "nullSort": "NULLS LAST", + "oldName": "cntrb_login", + "collationSchema": "pg_catalog" + }, + { + "objectType": "IndexField_PGSQL", + "name": "cntrb_email", + "collation": "default", + "opClass": "text_minmax_ops", + "opClassSchema": "pg_catalog", + "order": "ASC", + "nullSort": "NULLS LAST", + "oldName": "cntrb_email", + "collationSchema": "pg_catalog" + }, + { + "objectType": "IndexField_PGSQL", + "name": "cntrb_id", + "collation": "", + "opClass": "int8_minmax_ops", + "opClassSchema": "pg_catalog", + "order": "ASC", + "nullSort": "NULLS LAST", + "oldName": "cntrb_id", + "collationSchema": "" + } + ] + }, + { + "objectType": "Index_PGSQL", + "name": "contributor_worker_fullname_finder", + "comment": "", + "isClustered": false, + "isConcurrently": false, + "isUnique": false, + "fastUpdate": "", + "buffering": "", + "fillFactor": -1, + "method": "BRIN", + "tableSpaceName": "", + "constraint": "", + "oldName": "contributor_worker_fullname_finder", + "oid": 15488037, + "owner": "augur", + "brinPagesPerRange": -1, + "ginPendingListLimit": -1, + "tableName": "contributors", + "size": "24", + "fields": [ + { + "objectType": "IndexField_PGSQL", + "name": "cntrb_full_name", + "collation": "default", + "opClass": "text_minmax_ops", + "opClassSchema": "pg_catalog", + "order": "ASC", + "nullSort": "NULLS LAST", + "oldName": "cntrb_full_name", + "collationSchema": "pg_catalog" + } + ] + }, + { + "objectType": "Index_PGSQL", + "name": "contributors_idx_cntrb_email3", + "comment": "", + "isClustered": false, + "isConcurrently": false, + "isUnique": false, + "fastUpdate": "", + "buffering": "", + "fillFactor": -1, + "method": "BTree", + "tableSpaceName": "", + "constraint": "", + "oldName": "contributors_idx_cntrb_email3", + "oid": 15488168, + "owner": "augur", + "brinPagesPerRange": -1, + "ginPendingListLimit": -1, + "tableName": "contributors", + "size": "136", + "fields": [ + { + "objectType": "IndexField_PGSQL", + "name": "cntrb_email", + "collation": "default", + "opClass": "text_ops", + "opClassSchema": "pg_catalog", + "order": "ASC", + "nullSort": "NULLS LAST", + "oldName": "cntrb_email", + "collationSchema": "pg_catalog" + } + ] + }, + { + "objectType": "Index_PGSQL", + "name": "login", + "comment": "", + "isClustered": false, + "isConcurrently": false, + "isUnique": false, + "fastUpdate": "", + "buffering": "", + "fillFactor": -1, + "method": "BTree", + "tableSpaceName": "", + "constraint": "", + "oldName": "login", + "oid": 15486921, + "owner": "augur", + "brinPagesPerRange": -1, + "ginPendingListLimit": -1, + "tableName": "contributors", + "size": "168", + "fields": [ + { + "objectType": "IndexField_PGSQL", + "name": "cntrb_login", + "collation": "default", + "opClass": "text_ops", + "opClassSchema": "pg_catalog", + "order": "ASC", + "nullSort": "NULLS LAST", + "oldName": "cntrb_login", + "collationSchema": "pg_catalog" + } + ] + }, + { + "objectType": "Index_PGSQL", + "name": "login-contributor-idx", + "comment": "", + "isClustered": false, + "isConcurrently": false, + "isUnique": false, + "fastUpdate": "", + "buffering": "", + "fillFactor": -1, + "method": "BTree", + "tableSpaceName": "", + "constraint": "", + "oldName": "login-contributor-idx", + "oid": 15488137, + "owner": "augur", + "brinPagesPerRange": -1, + "ginPendingListLimit": -1, + "tableName": "contributors", + "size": "168", + "fields": [ + { + "objectType": "IndexField_PGSQL", + "name": "cntrb_login", + "collation": "default", + "opClass": "text_ops", + "opClassSchema": "pg_catalog", + "order": "ASC", + "nullSort": "NULLS LAST", + "oldName": "cntrb_login", + "collationSchema": "pg_catalog" + } + ] + } + ], + "rules": [], + "primaryKey": { + "objectType": "PrimaryKey_PGSQL", + "name": "contributors_pkey", + "fields": [ + "cntrb_id" + ], + "fillFactor": -1, + "indexTablespace": "", + "comment": "", + "isDeferrable": false, + "isDeferred": false, + "oldName": "contributors_pkey" + }, + "foreignKeys": [], + "uniques": [ + { + "objectType": "Unique_PGSQL", + "name": "GH-UNIQUE-B", + "fields": [ + "gh_user_id" + ], + "fillFactor": -1, + "indexTablespace": "", + "comment": "", + "isDeferrable": true, + "isDeferred": true, + "oldName": "GH-UNIQUE-B" + }, + { + "objectType": "Unique_PGSQL", + "name": "GH-UNIQUE-C", + "fields": [ + "gh_login" + ], + "fillFactor": -1, + "indexTablespace": "", + "comment": "", + "isDeferrable": true, + "isDeferred": true, + "oldName": "GH-UNIQUE-C" + }, + { + "objectType": "Unique_PGSQL", + "name": "GL-UNIQUE-B", + "fields": [ + "gl_id" + ], + "fillFactor": -1, + "indexTablespace": "", + "comment": "", + "isDeferrable": false, + "isDeferred": false, + "oldName": "GL-UNIQUE-B" + }, + { + "objectType": "Unique_PGSQL", + "name": "GL-UNIQUE-C", + "fields": [ + "gl_username" + ], + "fillFactor": -1, + "indexTablespace": "", + "comment": "", + "isDeferrable": false, + "isDeferred": false, + "oldName": "GL-UNIQUE-C" + } + ], + "checks": [], + "excludes": [], + "triggers": [], + "partitionKeys": [], + "partitions": [] + }, + { + "objectType": "TableNormal_PGSQL", + "name": "contributors_aliases", + "comment": "An alias will need to be created for every contributor in this model, otherwise we will have to look in 2 places. ", + "tablespace": "", + "isUnlogged": false, + "owner": "augur", + "inheritFromTables": [], + "hasOIDs": false, + "fillFactor": -1, + "oldName": "contributors_aliases", + "oid": 15486486, + "rows": 0, + "isInheritTables": false, + "cluster": "", + "ACL": "", + "isPartition": false, + "partitioningStrategy": "None", + "partitionOfSchema": "", + "partitionOfTable": "", + "partitionListValues": [], + "partitionRangeFromValues": [], + "partitionRangeToValues": [], + "foreignServer": "", + "foreignOptionDisplay": "", + "fields": [ + { + "objectType": "TableField_PGSQL", + "name": "cntrb_id", + "type": "int8", + "length": 64, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": false, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "cntrb_id", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 1, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": true, + "identityMaximum": 0, + "hasNoIdentityMaxValue": true, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "cntrb_a_id", + "type": "int8", + "length": 64, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": false, + "defaultType": "Others", + "defaultValue": "nextval('augur_data.contributors_aliases_cntrb_a_id_seq'::regclass)", + "comment": "", + "oldName": "cntrb_a_id", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 2, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": true, + "identityMaximum": 0, + "hasNoIdentityMaxValue": true, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "canonical_email", + "type": "varchar", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": false, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "canonical_email", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 3, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "alias_email", + "type": "varchar", + "length": 128, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": false, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "alias_email", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 4, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "cntrb_active", + "type": "int2", + "length": 16, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": false, + "defaultType": "Others", + "defaultValue": "1", + "comment": "", + "oldName": "cntrb_active", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 5, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "cntrb_last_modified", + "type": "timestamp", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": false, + "defaultType": "Others", + "defaultValue": "CURRENT_TIMESTAMP", + "comment": "", + "oldName": "cntrb_last_modified", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 6, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "tool_source", + "type": "varchar", + "length": 255, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "tool_source", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 7, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "tool_version", + "type": "varchar", + "length": 255, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "tool_version", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 8, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "data_source", + "type": "varchar", + "length": 255, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "data_source", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 9, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "data_collection_date", + "type": "timestamp", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "Others", + "defaultValue": "CURRENT_TIMESTAMP", + "comment": "", + "oldName": "data_collection_date", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 10, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + } + ], + "indexes": [ + { + "objectType": "Index_PGSQL", + "name": "alias,active", + "comment": "", + "isClustered": false, + "isConcurrently": false, + "isUnique": false, + "fastUpdate": "", + "buffering": "", + "fillFactor": -1, + "method": "BTree", + "tableSpaceName": "", + "constraint": "", + "oldName": "alias,active", + "oid": 15486924, + "owner": "augur", + "brinPagesPerRange": -1, + "ginPendingListLimit": -1, + "tableName": "contributors_aliases", + "size": "8", + "fields": [ + { + "objectType": "IndexField_PGSQL", + "name": "alias_email", + "collation": "default", + "opClass": "text_ops", + "opClassSchema": "pg_catalog", + "order": "ASC", + "nullSort": "NULLS LAST", + "oldName": "alias_email", + "collationSchema": "pg_catalog" + }, + { + "objectType": "IndexField_PGSQL", + "name": "cntrb_active", + "collation": "", + "opClass": "int2_ops", + "opClassSchema": "pg_catalog", + "order": "ASC", + "nullSort": "NULLS LAST", + "oldName": "cntrb_active", + "collationSchema": "" + } + ] + }, + { + "objectType": "Index_PGSQL", + "name": "canonical,alias", + "comment": "", + "isClustered": false, + "isConcurrently": false, + "isUnique": true, + "fastUpdate": "", + "buffering": "", + "fillFactor": -1, + "method": "BTree", + "tableSpaceName": "", + "constraint": "", + "oldName": "canonical,alias", + "oid": 15488179, + "owner": "augur", + "brinPagesPerRange": -1, + "ginPendingListLimit": -1, + "tableName": "contributors_aliases", + "size": "8", + "fields": [ + { + "objectType": "IndexField_PGSQL", + "name": "canonical_email", + "collation": "default", + "opClass": "text_ops", + "opClassSchema": "pg_catalog", + "order": "ASC", + "nullSort": "NULLS LAST", + "oldName": "canonical_email", + "collationSchema": "pg_catalog" + }, + { + "objectType": "IndexField_PGSQL", + "name": "alias_email", + "collation": "default", + "opClass": "text_ops", + "opClassSchema": "pg_catalog", + "order": "ASC", + "nullSort": "NULLS LAST", + "oldName": "alias_email", + "collationSchema": "pg_catalog" + } + ] + }, + { + "objectType": "Index_PGSQL", + "name": "issue-alias-cntrb-idx1", + "comment": "", + "isClustered": false, + "isConcurrently": false, + "isUnique": false, + "fastUpdate": "", + "buffering": "", + "fillFactor": -1, + "method": "BTree", + "tableSpaceName": "", + "constraint": "", + "oldName": "issue-alias-cntrb-idx1", + "oid": 15488152, + "owner": "augur", + "brinPagesPerRange": -1, + "ginPendingListLimit": -1, + "tableName": "contributors_aliases", + "size": "8", + "fields": [ + { + "objectType": "IndexField_PGSQL", + "name": "cntrb_id", + "collation": "", + "opClass": "int8_ops", + "opClassSchema": "pg_catalog", + "order": "ASC", + "nullSort": "NULLS LAST", + "oldName": "cntrb_id", + "collationSchema": "" + } + ] + }, + { + "objectType": "Index_PGSQL", + "name": "issue-alias-cntrb-idx2", + "comment": "", + "isClustered": false, + "isConcurrently": false, + "isUnique": false, + "fastUpdate": "", + "buffering": "", + "fillFactor": -1, + "method": "BTree", + "tableSpaceName": "", + "constraint": "", + "oldName": "issue-alias-cntrb-idx2", + "oid": 15488153, + "owner": "augur", + "brinPagesPerRange": -1, + "ginPendingListLimit": -1, + "tableName": "contributors_aliases", + "size": "8", + "fields": [ + { + "objectType": "IndexField_PGSQL", + "name": "cntrb_a_id", + "collation": "", + "opClass": "int8_ops", + "opClassSchema": "pg_catalog", + "order": "ASC", + "nullSort": "NULLS LAST", + "oldName": "cntrb_a_id", + "collationSchema": "" + } + ] + } + ], + "rules": [], + "primaryKey": { + "objectType": "PrimaryKey_PGSQL", + "name": "contributors_aliases_pkey", + "fields": [ + "cntrb_id", + "cntrb_a_id" + ], + "fillFactor": -1, + "indexTablespace": "", + "comment": "", + "isDeferrable": false, + "isDeferred": false, + "oldName": "contributors_aliases_pkey" + }, + "foreignKeys": [ + { + "objectType": "ForeignKey_PGSQL", + "name": "fk_alias_id", + "fields": [ + "cntrb_a_id" + ], + "referenceSchema": "augur_data", + "referenceTable": "contributors", + "referenceFields": [ + "cntrb_id" + ], + "onDelete": "CASCADE", + "onUpdate": "CASCADE", + "comment": "", + "isMatchFull": false, + "isDeferrable": false, + "isDeferred": false, + "sourceCardinality": "ZeroOrManyRelationship", + "targetCardinality": "OneAndOnlyOneRelationship", + "oldName": "fk_alias_id" + }, + { + "objectType": "ForeignKey_PGSQL", + "name": "fk_contributors_aliases_contributors_1", + "fields": [ + "cntrb_id" + ], + "referenceSchema": "augur_data", + "referenceTable": "contributors", + "referenceFields": [ + "cntrb_id" + ], + "onDelete": "CASCADE", + "onUpdate": "CASCADE", + "comment": "", + "isMatchFull": false, + "isDeferrable": false, + "isDeferred": false, + "sourceCardinality": "ZeroOrManyRelationship", + "targetCardinality": "OneAndOnlyOneRelationship", + "oldName": "fk_contributors_aliases_contributors_1" + } + ], + "uniques": [], + "checks": [], + "excludes": [], + "triggers": [], + "partitionKeys": [], + "partitions": [] + }, + { + "objectType": "TableNormal_PGSQL", + "name": "contributors_history", + "comment": "For GitHub, this should be repeated from gh_login. for other systems, it should be that systems login. \n\nAt this time the table is not populated. ", + "tablespace": "", + "isUnlogged": false, + "owner": "augur", + "inheritFromTables": [], + "hasOIDs": false, + "fillFactor": -1, + "oldName": "contributors_history", + "oid": 15486495, + "rows": 0, + "isInheritTables": false, + "cluster": "", + "ACL": "", + "isPartition": false, + "partitioningStrategy": "None", + "partitionOfSchema": "", + "partitionOfTable": "", + "partitionListValues": [], + "partitionRangeFromValues": [], + "partitionRangeToValues": [], + "foreignServer": "", + "foreignOptionDisplay": "", + "fields": [ + { + "objectType": "TableField_PGSQL", + "name": "cntrb_history_id", + "type": "int8", + "length": 64, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": false, + "defaultType": "Others", + "defaultValue": "nextval('augur_data.contributors_history_cntrb_history_id_seq'::regclass)", + "comment": "", + "oldName": "cntrb_history_id", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 1, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "cntrb_id", + "type": "int8", + "length": 64, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": false, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "cntrb_id", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 2, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "cntrb_history_timestamp", + "type": "timestamp", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": false, + "defaultType": "Others", + "defaultValue": "CURRENT_TIMESTAMP", + "comment": "", + "oldName": "cntrb_history_timestamp", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 3, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "cntrb_history_current_bool", + "type": "bool", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "At some point it would be great to have a boolean updated by a contributor worker that set the most recent contributor data to true. ", + "oldName": "cntrb_history_current_bool", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 4, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "cntrb_organizations_list", + "type": "json", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "cntrb_organizations_list", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 5, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "cntrb_gists_count", + "type": "int8", + "length": 64, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "cntrb_gists_count", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 6, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "cntrb_starred_count", + "type": "int8", + "length": 64, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "cntrb_starred_count", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 7, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "cntrb_following_count", + "type": "int8", + "length": 64, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "cntrb_following_count", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 8, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "cntrb_follower_count", + "type": "int8", + "length": 64, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "cntrb_follower_count", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 9, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "cntrb_login", + "type": "varchar", + "length": 255, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": false, + "defaultType": "None", + "defaultValue": "", + "comment": "Will be a double population with the same value as gh_login for github, but the local value for other systems. ", + "oldName": "cntrb_login", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 10, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "cntrb_email", + "type": "varchar", + "length": 255, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "This needs to be here for matching contributor ids, which are augur, to the commit information. ", + "oldName": "cntrb_email", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 11, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "cntrb_company", + "type": "varchar", + "length": 255, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "Others", + "defaultValue": "NULL::character varying", + "comment": "", + "oldName": "cntrb_company", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 12, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "cntrb_created_at", + "type": "timestamp", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": false, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "cntrb_created_at", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 13, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "cntrb_type", + "type": "varchar", + "length": 255, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "Present in another models. It is not currently used in Augur. ", + "oldName": "cntrb_type", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 14, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "cntrb_fake", + "type": "int2", + "length": 16, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": false, + "defaultType": "Others", + "defaultValue": "0", + "comment": "", + "oldName": "cntrb_fake", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 15, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "cntrb_deleted", + "type": "int2", + "length": 16, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": false, + "defaultType": "Others", + "defaultValue": "0", + "comment": "", + "oldName": "cntrb_deleted", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 16, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "cntrb_long", + "type": "numeric", + "length": 11, + "decimals": 8, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "Others", + "defaultValue": "NULL::numeric", + "comment": "", + "oldName": "cntrb_long", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 17, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "cntrb_lat", + "type": "numeric", + "length": 10, + "decimals": 8, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "Others", + "defaultValue": "NULL::numeric", + "comment": "", + "oldName": "cntrb_lat", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 18, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "cntrb_country_code", + "type": "char", + "length": 3, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "Others", + "defaultValue": "NULL::bpchar", + "comment": "", + "oldName": "cntrb_country_code", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 19, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "cntrb_state", + "type": "varchar", + "length": 255, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "Others", + "defaultValue": "NULL::character varying", + "comment": "", + "oldName": "cntrb_state", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 20, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "cntrb_city", + "type": "varchar", + "length": 255, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "Others", + "defaultValue": "NULL::character varying", + "comment": "", + "oldName": "cntrb_city", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 21, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "cntrb_location", + "type": "varchar", + "length": 255, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "Others", + "defaultValue": "NULL::character varying", + "comment": "", + "oldName": "cntrb_location", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 22, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "cntrb_canonical", + "type": "varchar", + "length": 128, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "cntrb_canonical", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 23, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "gh_user_id", + "type": "int8", + "length": 64, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "gh_user_id", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 24, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "gh_login", + "type": "varchar", + "length": 255, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "populated with the github user name for github originated data. ", + "oldName": "gh_login", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 25, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "gh_url", + "type": "varchar", + "length": 255, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "gh_url", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 26, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "gh_html_url", + "type": "varchar", + "length": 255, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "gh_html_url", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 27, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "gh_node_id", + "type": "varchar", + "length": 255, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "gh_node_id", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 28, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "gh_avatar_url", + "type": "varchar", + "length": 4000, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "gh_avatar_url", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 29, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "gh_gravatar_id", + "type": "varchar", + "length": 255, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "gh_gravatar_id", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 30, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "gh_followers_url", + "type": "varchar", + "length": 4000, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "gh_followers_url", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 31, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "gh_following_url", + "type": "varchar", + "length": 4000, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "gh_following_url", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 32, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "gh_gists_url", + "type": "varchar", + "length": 4000, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "gh_gists_url", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 33, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "gh_starred_url", + "type": "varchar", + "length": 4000, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "gh_starred_url", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 34, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "gh_subscriptions_url", + "type": "varchar", + "length": 4000, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "gh_subscriptions_url", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 35, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "gh_organizations_url", + "type": "varchar", + "length": 4000, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "gh_organizations_url", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 36, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "gh_repos_url", + "type": "varchar", + "length": 4000, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "gh_repos_url", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 37, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "gh_events_url", + "type": "varchar", + "length": 4000, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "gh_events_url", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 38, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "gh_received_events_url", + "type": "varchar", + "length": 4000, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "gh_received_events_url", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 39, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "gh_type", + "type": "varchar", + "length": 255, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "gh_type", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 40, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "gh_site_admin", + "type": "varchar", + "length": 255, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "gh_site_admin", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 41, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "tool_source", + "type": "varchar", + "length": 255, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "tool_source", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 42, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "tool_version", + "type": "varchar", + "length": 255, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "tool_version", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 43, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "data_source", + "type": "varchar", + "length": 255, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "data_source", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 44, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "data_collection_date", + "type": "timestamp", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "Others", + "defaultValue": "CURRENT_TIMESTAMP", + "comment": "", + "oldName": "data_collection_date", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 45, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + } + ], + "indexes": [ + { + "objectType": "Index_PGSQL", + "name": "contrb-history-dix1", + "comment": "", + "isClustered": false, + "isConcurrently": false, + "isUnique": false, + "fastUpdate": "", + "buffering": "", + "fillFactor": -1, + "method": "BTree", + "tableSpaceName": "", + "constraint": "", + "oldName": "contrb-history-dix1", + "oid": 15488154, + "owner": "augur", + "brinPagesPerRange": -1, + "ginPendingListLimit": -1, + "tableName": "contributors_history", + "size": "8", + "fields": [ + { + "objectType": "IndexField_PGSQL", + "name": "cntrb_id", + "collation": "", + "opClass": "int8_ops", + "opClassSchema": "pg_catalog", + "order": "ASC", + "nullSort": "NULLS LAST", + "oldName": "cntrb_id", + "collationSchema": "" + } + ] + }, + { + "objectType": "Index_PGSQL", + "name": "login_index_2", + "comment": "", + "isClustered": false, + "isConcurrently": false, + "isUnique": false, + "fastUpdate": "", + "buffering": "", + "fillFactor": -1, + "method": "BTree", + "tableSpaceName": "", + "constraint": "", + "oldName": "login_index_2", + "oid": 15486928, + "owner": "augur", + "brinPagesPerRange": -1, + "ginPendingListLimit": -1, + "tableName": "contributors_history", + "size": "8", + "fields": [ + { + "objectType": "IndexField_PGSQL", + "name": "cntrb_login", + "collation": "default", + "opClass": "text_ops", + "opClassSchema": "pg_catalog", + "order": "ASC", + "nullSort": "NULLS LAST", + "oldName": "cntrb_login", + "collationSchema": "pg_catalog" + } + ] + } + ], + "rules": [], + "primaryKey": { + "objectType": "PrimaryKey_PGSQL", + "name": "contributors_history_pkey", + "fields": [ + "cntrb_history_id" + ], + "fillFactor": -1, + "indexTablespace": "", + "comment": "", + "isDeferrable": false, + "isDeferred": false, + "oldName": "contributors_history_pkey" + }, + "foreignKeys": [ + { + "objectType": "ForeignKey_PGSQL", + "name": "fk_contributors_history_contributors_1", + "fields": [ + "cntrb_id" + ], + "referenceSchema": "augur_data", + "referenceTable": "contributors", + "referenceFields": [ + "cntrb_id" + ], + "onDelete": "NO ACTION", + "onUpdate": "NO ACTION", + "comment": "", + "isMatchFull": false, + "isDeferrable": false, + "isDeferred": false, + "sourceCardinality": "ZeroOrManyRelationship", + "targetCardinality": "OneAndOnlyOneRelationship", + "oldName": "fk_contributors_history_contributors_1" + } + ], + "uniques": [], + "checks": [], + "excludes": [], + "triggers": [], + "partitionKeys": [], + "partitions": [] + }, + { + "objectType": "TableNormal_PGSQL", + "name": "discourse_insights", + "comment": "", + "tablespace": "", + "isUnlogged": false, + "owner": "augur", + "inheritFromTables": [], + "hasOIDs": false, + "fillFactor": -1, + "oldName": "discourse_insights", + "oid": 15488222, + "rows": 0, + "isInheritTables": false, + "cluster": "", + "ACL": "", + "isPartition": false, + "partitioningStrategy": "None", + "partitionOfSchema": "", + "partitionOfTable": "", + "partitionListValues": [], + "partitionRangeFromValues": [], + "partitionRangeToValues": [], + "foreignServer": "", + "foreignOptionDisplay": "", + "fields": [ + { + "objectType": "TableField_PGSQL", + "name": "msg_discourse_id", + "type": "int8", + "length": 64, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": false, + "defaultType": "Others", + "defaultValue": "nextval('augur_data.discourse_insights_msg_discourse_id_seq1'::regclass)", + "comment": "", + "oldName": "msg_discourse_id", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 1, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "msg_id", + "type": "int8", + "length": 64, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "msg_id", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 2, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "discourse_act", + "type": "varchar", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "discourse_act", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 3, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "tool_source", + "type": "varchar", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "tool_source", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 4, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "tool_version", + "type": "varchar", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "tool_version", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 5, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "data_source", + "type": "varchar", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "data_source", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 6, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "data_collection_date", + "type": "timestamptz", + "length": 6, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "Others", + "defaultValue": "CURRENT_TIMESTAMP", + "comment": "", + "oldName": "data_collection_date", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 7, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + } + ], + "indexes": [], + "rules": [], + "primaryKey": { + "objectType": "PrimaryKey_PGSQL", + "name": "discourse_insights_pkey", + "fields": [ + "msg_discourse_id" + ], + "fillFactor": -1, + "indexTablespace": "", + "comment": "", + "isDeferrable": false, + "isDeferred": false, + "oldName": "discourse_insights_pkey" + }, + "foreignKeys": [ + { + "objectType": "ForeignKey_PGSQL", + "name": "fk_discourse_insights_message_1", + "fields": [ + "msg_id" + ], + "referenceSchema": "augur_data", + "referenceTable": "message", + "referenceFields": [ + "msg_id" + ], + "onDelete": "NO ACTION", + "onUpdate": "NO ACTION", + "comment": "", + "isMatchFull": false, + "isDeferrable": false, + "isDeferred": false, + "sourceCardinality": "ZeroOrManyRelationship", + "targetCardinality": "ZeroOrOneRelationship", + "oldName": "fk_discourse_insights_message_1" + } + ], + "uniques": [], + "checks": [], + "excludes": [], + "triggers": [], + "partitionKeys": [], + "partitions": [] + }, + { + "objectType": "TableNormal_PGSQL", + "name": "dm_repo_annual", + "comment": "", + "tablespace": "", + "isUnlogged": false, + "owner": "augur", + "inheritFromTables": [], + "hasOIDs": false, + "fillFactor": -1, + "oldName": "dm_repo_annual", + "oid": 15486513, + "rows": 4879, + "isInheritTables": false, + "cluster": "", + "ACL": "", + "isPartition": false, + "partitioningStrategy": "None", + "partitionOfSchema": "", + "partitionOfTable": "", + "partitionListValues": [], + "partitionRangeFromValues": [], + "partitionRangeToValues": [], + "foreignServer": "", + "foreignOptionDisplay": "", + "fields": [ + { + "objectType": "TableField_PGSQL", + "name": "repo_id", + "type": "int8", + "length": 64, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": false, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "repo_id", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 1, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "email", + "type": "varchar", + "length": 128, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": false, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "email", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 2, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "affiliation", + "type": "varchar", + "length": 128, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "Others", + "defaultValue": "'NULL'::character varying", + "comment": "", + "oldName": "affiliation", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 3, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "year", + "type": "int2", + "length": 16, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": false, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "year", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 4, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "added", + "type": "int8", + "length": 64, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": false, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "added", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 5, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "removed", + "type": "int8", + "length": 64, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": false, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "removed", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 6, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "whitespace", + "type": "int8", + "length": 64, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": false, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "whitespace", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 7, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "files", + "type": "int8", + "length": 64, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": false, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "files", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 8, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "patches", + "type": "int8", + "length": 64, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": false, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "patches", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 9, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "tool_source", + "type": "varchar", + "length": 255, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "tool_source", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 10, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "tool_version", + "type": "varchar", + "length": 255, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "tool_version", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 11, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "data_source", + "type": "varchar", + "length": 255, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "data_source", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 12, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "data_collection_date", + "type": "timestamp", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "Others", + "defaultValue": "CURRENT_TIMESTAMP", + "comment": "", + "oldName": "data_collection_date", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 13, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + } + ], + "indexes": [ + { + "objectType": "Index_PGSQL", + "name": "repo_id,affiliation_copy_1", + "comment": "", + "isClustered": false, + "isConcurrently": false, + "isUnique": false, + "fastUpdate": "", + "buffering": "", + "fillFactor": -1, + "method": "BTree", + "tableSpaceName": "", + "constraint": "", + "oldName": "repo_id,affiliation_copy_1", + "oid": 15486931, + "owner": "augur", + "brinPagesPerRange": -1, + "ginPendingListLimit": -1, + "tableName": "dm_repo_annual", + "size": "696", + "fields": [ + { + "objectType": "IndexField_PGSQL", + "name": "repo_id", + "collation": "", + "opClass": "int8_ops", + "opClassSchema": "pg_catalog", + "order": "ASC", + "nullSort": "NULLS LAST", + "oldName": "repo_id", + "collationSchema": "" + }, + { + "objectType": "IndexField_PGSQL", + "name": "affiliation", + "collation": "default", + "opClass": "text_ops", + "opClassSchema": "pg_catalog", + "order": "ASC", + "nullSort": "NULLS LAST", + "oldName": "affiliation", + "collationSchema": "pg_catalog" + } + ] + }, + { + "objectType": "Index_PGSQL", + "name": "repo_id,email_copy_1", + "comment": "", + "isClustered": false, + "isConcurrently": false, + "isUnique": false, + "fastUpdate": "", + "buffering": "", + "fillFactor": -1, + "method": "BTree", + "tableSpaceName": "", + "constraint": "", + "oldName": "repo_id,email_copy_1", + "oid": 15486932, + "owner": "augur", + "brinPagesPerRange": -1, + "ginPendingListLimit": -1, + "tableName": "dm_repo_annual", + "size": "632", + "fields": [ + { + "objectType": "IndexField_PGSQL", + "name": "repo_id", + "collation": "", + "opClass": "int8_ops", + "opClassSchema": "pg_catalog", + "order": "ASC", + "nullSort": "NULLS LAST", + "oldName": "repo_id", + "collationSchema": "" + }, + { + "objectType": "IndexField_PGSQL", + "name": "email", + "collation": "default", + "opClass": "text_ops", + "opClassSchema": "pg_catalog", + "order": "ASC", + "nullSort": "NULLS LAST", + "oldName": "email", + "collationSchema": "pg_catalog" + } + ] + } + ], + "rules": [], + "foreignKeys": [], + "uniques": [], + "checks": [], + "excludes": [], + "triggers": [], + "partitionKeys": [], + "partitions": [] + }, + { + "objectType": "TableNormal_PGSQL", + "name": "dm_repo_group_annual", + "comment": "", + "tablespace": "", + "isUnlogged": false, + "owner": "augur", + "inheritFromTables": [], + "hasOIDs": false, + "fillFactor": -1, + "oldName": "dm_repo_group_annual", + "oid": 15486521, + "rows": 4879, + "isInheritTables": false, + "cluster": "", + "ACL": "", + "isPartition": false, + "partitioningStrategy": "None", + "partitionOfSchema": "", + "partitionOfTable": "", + "partitionListValues": [], + "partitionRangeFromValues": [], + "partitionRangeToValues": [], + "foreignServer": "", + "foreignOptionDisplay": "", + "fields": [ + { + "objectType": "TableField_PGSQL", + "name": "repo_group_id", + "type": "int8", + "length": 64, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": false, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "repo_group_id", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 1, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "email", + "type": "varchar", + "length": 128, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": false, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "email", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 2, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "affiliation", + "type": "varchar", + "length": 128, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "Others", + "defaultValue": "'NULL'::character varying", + "comment": "", + "oldName": "affiliation", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 3, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "year", + "type": "int2", + "length": 16, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": false, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "year", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 4, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "added", + "type": "int8", + "length": 64, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": false, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "added", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 5, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "removed", + "type": "int8", + "length": 64, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": false, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "removed", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 6, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "whitespace", + "type": "int8", + "length": 64, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": false, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "whitespace", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 7, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "files", + "type": "int8", + "length": 64, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": false, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "files", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 8, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "patches", + "type": "int8", + "length": 64, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": false, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "patches", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 9, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "tool_source", + "type": "varchar", + "length": 255, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "tool_source", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 10, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "tool_version", + "type": "varchar", + "length": 255, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "tool_version", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 11, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "data_source", + "type": "varchar", + "length": 255, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "data_source", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 12, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "data_collection_date", + "type": "timestamp", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "Others", + "defaultValue": "CURRENT_TIMESTAMP", + "comment": "", + "oldName": "data_collection_date", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 13, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + } + ], + "indexes": [ + { + "objectType": "Index_PGSQL", + "name": "projects_id,affiliation_copy_1", + "comment": "", + "isClustered": false, + "isConcurrently": false, + "isUnique": false, + "fastUpdate": "", + "buffering": "", + "fillFactor": -1, + "method": "BTree", + "tableSpaceName": "", + "constraint": "", + "oldName": "projects_id,affiliation_copy_1", + "oid": 15486933, + "owner": "augur", + "brinPagesPerRange": -1, + "ginPendingListLimit": -1, + "tableName": "dm_repo_group_annual", + "size": "696", + "fields": [ + { + "objectType": "IndexField_PGSQL", + "name": "repo_group_id", + "collation": "", + "opClass": "int8_ops", + "opClassSchema": "pg_catalog", + "order": "ASC", + "nullSort": "NULLS LAST", + "oldName": "repo_group_id", + "collationSchema": "" + }, + { + "objectType": "IndexField_PGSQL", + "name": "affiliation", + "collation": "default", + "opClass": "text_ops", + "opClassSchema": "pg_catalog", + "order": "ASC", + "nullSort": "NULLS LAST", + "oldName": "affiliation", + "collationSchema": "pg_catalog" + } + ] + }, + { + "objectType": "Index_PGSQL", + "name": "projects_id,email_copy_1", + "comment": "", + "isClustered": false, + "isConcurrently": false, + "isUnique": false, + "fastUpdate": "", + "buffering": "", + "fillFactor": -1, + "method": "BTree", + "tableSpaceName": "", + "constraint": "", + "oldName": "projects_id,email_copy_1", + "oid": 15486934, + "owner": "augur", + "brinPagesPerRange": -1, + "ginPendingListLimit": -1, + "tableName": "dm_repo_group_annual", + "size": "632", + "fields": [ + { + "objectType": "IndexField_PGSQL", + "name": "repo_group_id", + "collation": "", + "opClass": "int8_ops", + "opClassSchema": "pg_catalog", + "order": "ASC", + "nullSort": "NULLS LAST", + "oldName": "repo_group_id", + "collationSchema": "" + }, + { + "objectType": "IndexField_PGSQL", + "name": "email", + "collation": "default", + "opClass": "text_ops", + "opClassSchema": "pg_catalog", + "order": "ASC", + "nullSort": "NULLS LAST", + "oldName": "email", + "collationSchema": "pg_catalog" + } + ] + } + ], + "rules": [], + "foreignKeys": [], + "uniques": [], + "checks": [], + "excludes": [], + "triggers": [], + "partitionKeys": [], + "partitions": [] + }, + { + "objectType": "TableNormal_PGSQL", + "name": "dm_repo_group_monthly", + "comment": "", + "tablespace": "", + "isUnlogged": false, + "owner": "augur", + "inheritFromTables": [], + "hasOIDs": false, + "fillFactor": -1, + "oldName": "dm_repo_group_monthly", + "oid": 15486529, + "rows": 9339, + "isInheritTables": false, + "cluster": "", + "ACL": "", + "isPartition": false, + "partitioningStrategy": "None", + "partitionOfSchema": "", + "partitionOfTable": "", + "partitionListValues": [], + "partitionRangeFromValues": [], + "partitionRangeToValues": [], + "foreignServer": "", + "foreignOptionDisplay": "", + "fields": [ + { + "objectType": "TableField_PGSQL", + "name": "repo_group_id", + "type": "int8", + "length": 64, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": false, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "repo_group_id", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 1, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "email", + "type": "varchar", + "length": 128, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": false, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "email", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 2, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "affiliation", + "type": "varchar", + "length": 128, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "Others", + "defaultValue": "'NULL'::character varying", + "comment": "", + "oldName": "affiliation", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 3, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "month", + "type": "int2", + "length": 16, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": false, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "month", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 4, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "year", + "type": "int2", + "length": 16, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": false, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "year", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 5, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "added", + "type": "int8", + "length": 64, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": false, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "added", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 6, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "removed", + "type": "int8", + "length": 64, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": false, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "removed", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 7, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "whitespace", + "type": "int8", + "length": 64, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": false, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "whitespace", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 8, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "files", + "type": "int8", + "length": 64, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": false, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "files", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 9, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "patches", + "type": "int8", + "length": 64, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": false, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "patches", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 10, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "tool_source", + "type": "varchar", + "length": 255, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "tool_source", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 11, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "tool_version", + "type": "varchar", + "length": 255, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "tool_version", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 12, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "data_source", + "type": "varchar", + "length": 255, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "data_source", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 13, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "data_collection_date", + "type": "timestamp", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "Others", + "defaultValue": "CURRENT_TIMESTAMP", + "comment": "", + "oldName": "data_collection_date", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 14, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + } + ], + "indexes": [ + { + "objectType": "Index_PGSQL", + "name": "projects_id,affiliation_copy_2", + "comment": "", + "isClustered": false, + "isConcurrently": false, + "isUnique": false, + "fastUpdate": "", + "buffering": "", + "fillFactor": -1, + "method": "BTree", + "tableSpaceName": "", + "constraint": "", + "oldName": "projects_id,affiliation_copy_2", + "oid": 15486935, + "owner": "augur", + "brinPagesPerRange": -1, + "ginPendingListLimit": -1, + "tableName": "dm_repo_group_monthly", + "size": "1344", + "fields": [ + { + "objectType": "IndexField_PGSQL", + "name": "repo_group_id", + "collation": "", + "opClass": "int8_ops", + "opClassSchema": "pg_catalog", + "order": "ASC", + "nullSort": "NULLS LAST", + "oldName": "repo_group_id", + "collationSchema": "" + }, + { + "objectType": "IndexField_PGSQL", + "name": "affiliation", + "collation": "default", + "opClass": "text_ops", + "opClassSchema": "pg_catalog", + "order": "ASC", + "nullSort": "NULLS LAST", + "oldName": "affiliation", + "collationSchema": "pg_catalog" + } + ] + }, + { + "objectType": "Index_PGSQL", + "name": "projects_id,email_copy_2", + "comment": "", + "isClustered": false, + "isConcurrently": false, + "isUnique": false, + "fastUpdate": "", + "buffering": "", + "fillFactor": -1, + "method": "BTree", + "tableSpaceName": "", + "constraint": "", + "oldName": "projects_id,email_copy_2", + "oid": 15486936, + "owner": "augur", + "brinPagesPerRange": -1, + "ginPendingListLimit": -1, + "tableName": "dm_repo_group_monthly", + "size": "1328", + "fields": [ + { + "objectType": "IndexField_PGSQL", + "name": "repo_group_id", + "collation": "", + "opClass": "int8_ops", + "opClassSchema": "pg_catalog", + "order": "ASC", + "nullSort": "NULLS LAST", + "oldName": "repo_group_id", + "collationSchema": "" + }, + { + "objectType": "IndexField_PGSQL", + "name": "email", + "collation": "default", + "opClass": "text_ops", + "opClassSchema": "pg_catalog", + "order": "ASC", + "nullSort": "NULLS LAST", + "oldName": "email", + "collationSchema": "pg_catalog" + } + ] + }, + { + "objectType": "Index_PGSQL", + "name": "projects_id,year,affiliation_copy_1", + "comment": "", + "isClustered": false, + "isConcurrently": false, + "isUnique": false, + "fastUpdate": "", + "buffering": "", + "fillFactor": -1, + "method": "BTree", + "tableSpaceName": "", + "constraint": "", + "oldName": "projects_id,year,affiliation_copy_1", + "oid": 15486937, + "owner": "augur", + "brinPagesPerRange": -1, + "ginPendingListLimit": -1, + "tableName": "dm_repo_group_monthly", + "size": "1304", + "fields": [ + { + "objectType": "IndexField_PGSQL", + "name": "repo_group_id", + "collation": "", + "opClass": "int8_ops", + "opClassSchema": "pg_catalog", + "order": "ASC", + "nullSort": "NULLS LAST", + "oldName": "repo_group_id", + "collationSchema": "" + }, + { + "objectType": "IndexField_PGSQL", + "name": "year", + "collation": "", + "opClass": "int2_ops", + "opClassSchema": "pg_catalog", + "order": "ASC", + "nullSort": "NULLS LAST", + "oldName": "year", + "collationSchema": "" + }, + { + "objectType": "IndexField_PGSQL", + "name": "affiliation", + "collation": "default", + "opClass": "text_ops", + "opClassSchema": "pg_catalog", + "order": "ASC", + "nullSort": "NULLS LAST", + "oldName": "affiliation", + "collationSchema": "pg_catalog" + } + ] + }, + { + "objectType": "Index_PGSQL", + "name": "projects_id,year,email_copy_1", + "comment": "", + "isClustered": false, + "isConcurrently": false, + "isUnique": false, + "fastUpdate": "", + "buffering": "", + "fillFactor": -1, + "method": "BTree", + "tableSpaceName": "", + "constraint": "", + "oldName": "projects_id,year,email_copy_1", + "oid": 15486938, + "owner": "augur", + "brinPagesPerRange": -1, + "ginPendingListLimit": -1, + "tableName": "dm_repo_group_monthly", + "size": "1240", + "fields": [ + { + "objectType": "IndexField_PGSQL", + "name": "repo_group_id", + "collation": "", + "opClass": "int8_ops", + "opClassSchema": "pg_catalog", + "order": "ASC", + "nullSort": "NULLS LAST", + "oldName": "repo_group_id", + "collationSchema": "" + }, + { + "objectType": "IndexField_PGSQL", + "name": "year", + "collation": "", + "opClass": "int2_ops", + "opClassSchema": "pg_catalog", + "order": "ASC", + "nullSort": "NULLS LAST", + "oldName": "year", + "collationSchema": "" + }, + { + "objectType": "IndexField_PGSQL", + "name": "email", + "collation": "default", + "opClass": "text_ops", + "opClassSchema": "pg_catalog", + "order": "ASC", + "nullSort": "NULLS LAST", + "oldName": "email", + "collationSchema": "pg_catalog" + } + ] + } + ], + "rules": [], + "foreignKeys": [], + "uniques": [], + "checks": [], + "excludes": [], + "triggers": [], + "partitionKeys": [], + "partitions": [] + }, + { + "objectType": "TableNormal_PGSQL", + "name": "dm_repo_group_weekly", + "comment": "", + "tablespace": "", + "isUnlogged": false, + "owner": "augur", + "inheritFromTables": [], + "hasOIDs": false, + "fillFactor": -1, + "oldName": "dm_repo_group_weekly", + "oid": 15486537, + "rows": 15640, + "isInheritTables": false, + "cluster": "", + "ACL": "", + "isPartition": false, + "partitioningStrategy": "None", + "partitionOfSchema": "", + "partitionOfTable": "", + "partitionListValues": [], + "partitionRangeFromValues": [], + "partitionRangeToValues": [], + "foreignServer": "", + "foreignOptionDisplay": "", + "fields": [ + { + "objectType": "TableField_PGSQL", + "name": "repo_group_id", + "type": "int8", + "length": 64, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": false, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "repo_group_id", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 1, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "email", + "type": "varchar", + "length": 128, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": false, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "email", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 2, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "affiliation", + "type": "varchar", + "length": 128, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "Others", + "defaultValue": "'NULL'::character varying", + "comment": "", + "oldName": "affiliation", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 3, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "week", + "type": "int2", + "length": 16, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": false, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "week", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 4, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "year", + "type": "int2", + "length": 16, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": false, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "year", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 5, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "added", + "type": "int8", + "length": 64, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": false, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "added", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 6, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "removed", + "type": "int8", + "length": 64, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": false, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "removed", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 7, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "whitespace", + "type": "int8", + "length": 64, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": false, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "whitespace", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 8, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "files", + "type": "int8", + "length": 64, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": false, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "files", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 9, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "patches", + "type": "int8", + "length": 64, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": false, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "patches", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 10, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "tool_source", + "type": "varchar", + "length": 255, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "tool_source", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 11, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "tool_version", + "type": "varchar", + "length": 255, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "tool_version", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 12, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "data_source", + "type": "varchar", + "length": 255, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "data_source", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 13, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "data_collection_date", + "type": "timestamp", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "Others", + "defaultValue": "CURRENT_TIMESTAMP", + "comment": "", + "oldName": "data_collection_date", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 14, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + } + ], + "indexes": [ + { + "objectType": "Index_PGSQL", + "name": "projects_id,affiliation", + "comment": "", + "isClustered": false, + "isConcurrently": false, + "isUnique": false, + "fastUpdate": "", + "buffering": "", + "fillFactor": -1, + "method": "BTree", + "tableSpaceName": "", + "constraint": "", + "oldName": "projects_id,affiliation", + "oid": 15486939, + "owner": "augur", + "brinPagesPerRange": -1, + "ginPendingListLimit": -1, + "tableName": "dm_repo_group_weekly", + "size": "2536", + "fields": [ + { + "objectType": "IndexField_PGSQL", + "name": "repo_group_id", + "collation": "", + "opClass": "int8_ops", + "opClassSchema": "pg_catalog", + "order": "ASC", + "nullSort": "NULLS LAST", + "oldName": "repo_group_id", + "collationSchema": "" + }, + { + "objectType": "IndexField_PGSQL", + "name": "affiliation", + "collation": "default", + "opClass": "text_ops", + "opClassSchema": "pg_catalog", + "order": "ASC", + "nullSort": "NULLS LAST", + "oldName": "affiliation", + "collationSchema": "pg_catalog" + } + ] + }, + { + "objectType": "Index_PGSQL", + "name": "projects_id,email", + "comment": "", + "isClustered": false, + "isConcurrently": false, + "isUnique": false, + "fastUpdate": "", + "buffering": "", + "fillFactor": -1, + "method": "BTree", + "tableSpaceName": "", + "constraint": "", + "oldName": "projects_id,email", + "oid": 15486940, + "owner": "augur", + "brinPagesPerRange": -1, + "ginPendingListLimit": -1, + "tableName": "dm_repo_group_weekly", + "size": "2424", + "fields": [ + { + "objectType": "IndexField_PGSQL", + "name": "repo_group_id", + "collation": "", + "opClass": "int8_ops", + "opClassSchema": "pg_catalog", + "order": "ASC", + "nullSort": "NULLS LAST", + "oldName": "repo_group_id", + "collationSchema": "" + }, + { + "objectType": "IndexField_PGSQL", + "name": "email", + "collation": "default", + "opClass": "text_ops", + "opClassSchema": "pg_catalog", + "order": "ASC", + "nullSort": "NULLS LAST", + "oldName": "email", + "collationSchema": "pg_catalog" + } + ] + }, + { + "objectType": "Index_PGSQL", + "name": "projects_id,year,affiliation", + "comment": "", + "isClustered": false, + "isConcurrently": false, + "isUnique": false, + "fastUpdate": "", + "buffering": "", + "fillFactor": -1, + "method": "BTree", + "tableSpaceName": "", + "constraint": "", + "oldName": "projects_id,year,affiliation", + "oid": 15486941, + "owner": "augur", + "brinPagesPerRange": -1, + "ginPendingListLimit": -1, + "tableName": "dm_repo_group_weekly", + "size": "2224", + "fields": [ + { + "objectType": "IndexField_PGSQL", + "name": "repo_group_id", + "collation": "", + "opClass": "int8_ops", + "opClassSchema": "pg_catalog", + "order": "ASC", + "nullSort": "NULLS LAST", + "oldName": "repo_group_id", + "collationSchema": "" + }, + { + "objectType": "IndexField_PGSQL", + "name": "year", + "collation": "", + "opClass": "int2_ops", + "opClassSchema": "pg_catalog", + "order": "ASC", + "nullSort": "NULLS LAST", + "oldName": "year", + "collationSchema": "" + }, + { + "objectType": "IndexField_PGSQL", + "name": "affiliation", + "collation": "default", + "opClass": "text_ops", + "opClassSchema": "pg_catalog", + "order": "ASC", + "nullSort": "NULLS LAST", + "oldName": "affiliation", + "collationSchema": "pg_catalog" + } + ] + }, + { + "objectType": "Index_PGSQL", + "name": "projects_id,year,email", + "comment": "", + "isClustered": false, + "isConcurrently": false, + "isUnique": false, + "fastUpdate": "", + "buffering": "", + "fillFactor": -1, + "method": "BTree", + "tableSpaceName": "", + "constraint": "", + "oldName": "projects_id,year,email", + "oid": 15486942, + "owner": "augur", + "brinPagesPerRange": -1, + "ginPendingListLimit": -1, + "tableName": "dm_repo_group_weekly", + "size": "2152", + "fields": [ + { + "objectType": "IndexField_PGSQL", + "name": "repo_group_id", + "collation": "", + "opClass": "int8_ops", + "opClassSchema": "pg_catalog", + "order": "ASC", + "nullSort": "NULLS LAST", + "oldName": "repo_group_id", + "collationSchema": "" + }, + { + "objectType": "IndexField_PGSQL", + "name": "year", + "collation": "", + "opClass": "int2_ops", + "opClassSchema": "pg_catalog", + "order": "ASC", + "nullSort": "NULLS LAST", + "oldName": "year", + "collationSchema": "" + }, + { + "objectType": "IndexField_PGSQL", + "name": "email", + "collation": "default", + "opClass": "text_ops", + "opClassSchema": "pg_catalog", + "order": "ASC", + "nullSort": "NULLS LAST", + "oldName": "email", + "collationSchema": "pg_catalog" + } + ] + } + ], + "rules": [], + "foreignKeys": [], + "uniques": [], + "checks": [], + "excludes": [], + "triggers": [], + "partitionKeys": [], + "partitions": [] + }, + { + "objectType": "TableNormal_PGSQL", + "name": "dm_repo_monthly", + "comment": "", + "tablespace": "", + "isUnlogged": false, + "owner": "augur", + "inheritFromTables": [], + "hasOIDs": false, + "fillFactor": -1, + "oldName": "dm_repo_monthly", + "oid": 15486545, + "rows": 9339, + "isInheritTables": false, + "cluster": "", + "ACL": "", + "isPartition": false, + "partitioningStrategy": "None", + "partitionOfSchema": "", + "partitionOfTable": "", + "partitionListValues": [], + "partitionRangeFromValues": [], + "partitionRangeToValues": [], + "foreignServer": "", + "foreignOptionDisplay": "", + "fields": [ + { + "objectType": "TableField_PGSQL", + "name": "repo_id", + "type": "int8", + "length": 64, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": false, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "repo_id", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 1, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "email", + "type": "varchar", + "length": 128, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": false, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "email", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 2, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "affiliation", + "type": "varchar", + "length": 128, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "Others", + "defaultValue": "'NULL'::character varying", + "comment": "", + "oldName": "affiliation", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 3, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "month", + "type": "int2", + "length": 16, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": false, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "month", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 4, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "year", + "type": "int2", + "length": 16, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": false, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "year", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 5, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "added", + "type": "int8", + "length": 64, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": false, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "added", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 6, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "removed", + "type": "int8", + "length": 64, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": false, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "removed", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 7, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "whitespace", + "type": "int8", + "length": 64, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": false, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "whitespace", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 8, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "files", + "type": "int8", + "length": 64, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": false, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "files", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 9, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "patches", + "type": "int8", + "length": 64, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": false, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "patches", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 10, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "tool_source", + "type": "varchar", + "length": 255, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "tool_source", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 11, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "tool_version", + "type": "varchar", + "length": 255, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "tool_version", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 12, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "data_source", + "type": "varchar", + "length": 255, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "data_source", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 13, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "data_collection_date", + "type": "timestamp", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "Others", + "defaultValue": "CURRENT_TIMESTAMP", + "comment": "", + "oldName": "data_collection_date", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 14, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + } + ], + "indexes": [ + { + "objectType": "Index_PGSQL", + "name": "repo_id,affiliation_copy_2", + "comment": "", + "isClustered": false, + "isConcurrently": false, + "isUnique": false, + "fastUpdate": "", + "buffering": "", + "fillFactor": -1, + "method": "BTree", + "tableSpaceName": "", + "constraint": "", + "oldName": "repo_id,affiliation_copy_2", + "oid": 15486943, + "owner": "augur", + "brinPagesPerRange": -1, + "ginPendingListLimit": -1, + "tableName": "dm_repo_monthly", + "size": "1344", + "fields": [ + { + "objectType": "IndexField_PGSQL", + "name": "repo_id", + "collation": "", + "opClass": "int8_ops", + "opClassSchema": "pg_catalog", + "order": "ASC", + "nullSort": "NULLS LAST", + "oldName": "repo_id", + "collationSchema": "" + }, + { + "objectType": "IndexField_PGSQL", + "name": "affiliation", + "collation": "default", + "opClass": "text_ops", + "opClassSchema": "pg_catalog", + "order": "ASC", + "nullSort": "NULLS LAST", + "oldName": "affiliation", + "collationSchema": "pg_catalog" + } + ] + }, + { + "objectType": "Index_PGSQL", + "name": "repo_id,email_copy_2", + "comment": "", + "isClustered": false, + "isConcurrently": false, + "isUnique": false, + "fastUpdate": "", + "buffering": "", + "fillFactor": -1, + "method": "BTree", + "tableSpaceName": "", + "constraint": "", + "oldName": "repo_id,email_copy_2", + "oid": 15486944, + "owner": "augur", + "brinPagesPerRange": -1, + "ginPendingListLimit": -1, + "tableName": "dm_repo_monthly", + "size": "1328", + "fields": [ + { + "objectType": "IndexField_PGSQL", + "name": "repo_id", + "collation": "", + "opClass": "int8_ops", + "opClassSchema": "pg_catalog", + "order": "ASC", + "nullSort": "NULLS LAST", + "oldName": "repo_id", + "collationSchema": "" + }, + { + "objectType": "IndexField_PGSQL", + "name": "email", + "collation": "default", + "opClass": "text_ops", + "opClassSchema": "pg_catalog", + "order": "ASC", + "nullSort": "NULLS LAST", + "oldName": "email", + "collationSchema": "pg_catalog" + } + ] + }, + { + "objectType": "Index_PGSQL", + "name": "repo_id,year,affiliation_copy_1", + "comment": "", + "isClustered": false, + "isConcurrently": false, + "isUnique": false, + "fastUpdate": "", + "buffering": "", + "fillFactor": -1, + "method": "BTree", + "tableSpaceName": "", + "constraint": "", + "oldName": "repo_id,year,affiliation_copy_1", + "oid": 15486945, + "owner": "augur", + "brinPagesPerRange": -1, + "ginPendingListLimit": -1, + "tableName": "dm_repo_monthly", + "size": "1304", + "fields": [ + { + "objectType": "IndexField_PGSQL", + "name": "repo_id", + "collation": "", + "opClass": "int8_ops", + "opClassSchema": "pg_catalog", + "order": "ASC", + "nullSort": "NULLS LAST", + "oldName": "repo_id", + "collationSchema": "" + }, + { + "objectType": "IndexField_PGSQL", + "name": "year", + "collation": "", + "opClass": "int2_ops", + "opClassSchema": "pg_catalog", + "order": "ASC", + "nullSort": "NULLS LAST", + "oldName": "year", + "collationSchema": "" + }, + { + "objectType": "IndexField_PGSQL", + "name": "affiliation", + "collation": "default", + "opClass": "text_ops", + "opClassSchema": "pg_catalog", + "order": "ASC", + "nullSort": "NULLS LAST", + "oldName": "affiliation", + "collationSchema": "pg_catalog" + } + ] + }, + { + "objectType": "Index_PGSQL", + "name": "repo_id,year,email_copy_1", + "comment": "", + "isClustered": false, + "isConcurrently": false, + "isUnique": false, + "fastUpdate": "", + "buffering": "", + "fillFactor": -1, + "method": "BTree", + "tableSpaceName": "", + "constraint": "", + "oldName": "repo_id,year,email_copy_1", + "oid": 15486946, + "owner": "augur", + "brinPagesPerRange": -1, + "ginPendingListLimit": -1, + "tableName": "dm_repo_monthly", + "size": "1240", + "fields": [ + { + "objectType": "IndexField_PGSQL", + "name": "repo_id", + "collation": "", + "opClass": "int8_ops", + "opClassSchema": "pg_catalog", + "order": "ASC", + "nullSort": "NULLS LAST", + "oldName": "repo_id", + "collationSchema": "" + }, + { + "objectType": "IndexField_PGSQL", + "name": "year", + "collation": "", + "opClass": "int2_ops", + "opClassSchema": "pg_catalog", + "order": "ASC", + "nullSort": "NULLS LAST", + "oldName": "year", + "collationSchema": "" + }, + { + "objectType": "IndexField_PGSQL", + "name": "email", + "collation": "default", + "opClass": "text_ops", + "opClassSchema": "pg_catalog", + "order": "ASC", + "nullSort": "NULLS LAST", + "oldName": "email", + "collationSchema": "pg_catalog" + } + ] + } + ], + "rules": [], + "foreignKeys": [], + "uniques": [], + "checks": [], + "excludes": [], + "triggers": [], + "partitionKeys": [], + "partitions": [] + }, + { + "objectType": "TableNormal_PGSQL", + "name": "dm_repo_weekly", + "comment": "", + "tablespace": "", + "isUnlogged": false, + "owner": "augur", + "inheritFromTables": [], + "hasOIDs": false, + "fillFactor": -1, + "oldName": "dm_repo_weekly", + "oid": 15486553, + "rows": 15640, + "isInheritTables": false, + "cluster": "", + "ACL": "", + "isPartition": false, + "partitioningStrategy": "None", + "partitionOfSchema": "", + "partitionOfTable": "", + "partitionListValues": [], + "partitionRangeFromValues": [], + "partitionRangeToValues": [], + "foreignServer": "", + "foreignOptionDisplay": "", + "fields": [ + { + "objectType": "TableField_PGSQL", + "name": "repo_id", + "type": "int8", + "length": 64, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": false, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "repo_id", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 1, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "email", + "type": "varchar", + "length": 128, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": false, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "email", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 2, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "affiliation", + "type": "varchar", + "length": 128, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "Others", + "defaultValue": "'NULL'::character varying", + "comment": "", + "oldName": "affiliation", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 3, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "week", + "type": "int2", + "length": 16, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": false, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "week", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 4, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "year", + "type": "int2", + "length": 16, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": false, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "year", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 5, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "added", + "type": "int8", + "length": 64, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": false, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "added", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 6, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "removed", + "type": "int8", + "length": 64, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": false, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "removed", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 7, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "whitespace", + "type": "int8", + "length": 64, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": false, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "whitespace", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 8, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "files", + "type": "int8", + "length": 64, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": false, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "files", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 9, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "patches", + "type": "int8", + "length": 64, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": false, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "patches", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 10, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "tool_source", + "type": "varchar", + "length": 255, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "tool_source", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 11, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "tool_version", + "type": "varchar", + "length": 255, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "tool_version", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 12, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "data_source", + "type": "varchar", + "length": 255, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "data_source", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 13, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "data_collection_date", + "type": "timestamp", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "Others", + "defaultValue": "CURRENT_TIMESTAMP", + "comment": "", + "oldName": "data_collection_date", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 14, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + } + ], + "indexes": [ + { + "objectType": "Index_PGSQL", + "name": "repo_id,affiliation", + "comment": "", + "isClustered": false, + "isConcurrently": false, + "isUnique": false, + "fastUpdate": "", + "buffering": "", + "fillFactor": -1, + "method": "BTree", + "tableSpaceName": "", + "constraint": "", + "oldName": "repo_id,affiliation", + "oid": 15486947, + "owner": "augur", + "brinPagesPerRange": -1, + "ginPendingListLimit": -1, + "tableName": "dm_repo_weekly", + "size": "2536", + "fields": [ + { + "objectType": "IndexField_PGSQL", + "name": "repo_id", + "collation": "", + "opClass": "int8_ops", + "opClassSchema": "pg_catalog", + "order": "ASC", + "nullSort": "NULLS LAST", + "oldName": "repo_id", + "collationSchema": "" + }, + { + "objectType": "IndexField_PGSQL", + "name": "affiliation", + "collation": "default", + "opClass": "text_ops", + "opClassSchema": "pg_catalog", + "order": "ASC", + "nullSort": "NULLS LAST", + "oldName": "affiliation", + "collationSchema": "pg_catalog" + } + ] + }, + { + "objectType": "Index_PGSQL", + "name": "repo_id,email", + "comment": "", + "isClustered": false, + "isConcurrently": false, + "isUnique": false, + "fastUpdate": "", + "buffering": "", + "fillFactor": -1, + "method": "BTree", + "tableSpaceName": "", + "constraint": "", + "oldName": "repo_id,email", + "oid": 15486948, + "owner": "augur", + "brinPagesPerRange": -1, + "ginPendingListLimit": -1, + "tableName": "dm_repo_weekly", + "size": "2424", + "fields": [ + { + "objectType": "IndexField_PGSQL", + "name": "repo_id", + "collation": "", + "opClass": "int8_ops", + "opClassSchema": "pg_catalog", + "order": "ASC", + "nullSort": "NULLS LAST", + "oldName": "repo_id", + "collationSchema": "" + }, + { + "objectType": "IndexField_PGSQL", + "name": "email", + "collation": "default", + "opClass": "text_ops", + "opClassSchema": "pg_catalog", + "order": "ASC", + "nullSort": "NULLS LAST", + "oldName": "email", + "collationSchema": "pg_catalog" + } + ] + }, + { + "objectType": "Index_PGSQL", + "name": "repo_id,year,affiliation", + "comment": "", + "isClustered": false, + "isConcurrently": false, + "isUnique": false, + "fastUpdate": "", + "buffering": "", + "fillFactor": -1, + "method": "BTree", + "tableSpaceName": "", + "constraint": "", + "oldName": "repo_id,year,affiliation", + "oid": 15486949, + "owner": "augur", + "brinPagesPerRange": -1, + "ginPendingListLimit": -1, + "tableName": "dm_repo_weekly", + "size": "2224", + "fields": [ + { + "objectType": "IndexField_PGSQL", + "name": "repo_id", + "collation": "", + "opClass": "int8_ops", + "opClassSchema": "pg_catalog", + "order": "ASC", + "nullSort": "NULLS LAST", + "oldName": "repo_id", + "collationSchema": "" + }, + { + "objectType": "IndexField_PGSQL", + "name": "year", + "collation": "", + "opClass": "int2_ops", + "opClassSchema": "pg_catalog", + "order": "ASC", + "nullSort": "NULLS LAST", + "oldName": "year", + "collationSchema": "" + }, + { + "objectType": "IndexField_PGSQL", + "name": "affiliation", + "collation": "default", + "opClass": "text_ops", + "opClassSchema": "pg_catalog", + "order": "ASC", + "nullSort": "NULLS LAST", + "oldName": "affiliation", + "collationSchema": "pg_catalog" + } + ] + }, + { + "objectType": "Index_PGSQL", + "name": "repo_id,year,email", + "comment": "", + "isClustered": false, + "isConcurrently": false, + "isUnique": false, + "fastUpdate": "", + "buffering": "", + "fillFactor": -1, + "method": "BTree", + "tableSpaceName": "", + "constraint": "", + "oldName": "repo_id,year,email", + "oid": 15486950, + "owner": "augur", + "brinPagesPerRange": -1, + "ginPendingListLimit": -1, + "tableName": "dm_repo_weekly", + "size": "2152", + "fields": [ + { + "objectType": "IndexField_PGSQL", + "name": "repo_id", + "collation": "", + "opClass": "int8_ops", + "opClassSchema": "pg_catalog", + "order": "ASC", + "nullSort": "NULLS LAST", + "oldName": "repo_id", + "collationSchema": "" + }, + { + "objectType": "IndexField_PGSQL", + "name": "year", + "collation": "", + "opClass": "int2_ops", + "opClassSchema": "pg_catalog", + "order": "ASC", + "nullSort": "NULLS LAST", + "oldName": "year", + "collationSchema": "" + }, + { + "objectType": "IndexField_PGSQL", + "name": "email", + "collation": "default", + "opClass": "text_ops", + "opClassSchema": "pg_catalog", + "order": "ASC", + "nullSort": "NULLS LAST", + "oldName": "email", + "collationSchema": "pg_catalog" + } + ] + } + ], + "rules": [], + "foreignKeys": [], + "uniques": [], + "checks": [], + "excludes": [], + "triggers": [], + "partitionKeys": [], + "partitions": [] + }, + { + "objectType": "TableNormal_PGSQL", + "name": "exclude", + "comment": "", + "tablespace": "", + "isUnlogged": false, + "owner": "augur", + "inheritFromTables": [], + "hasOIDs": false, + "fillFactor": -1, + "oldName": "exclude", + "oid": 15486561, + "rows": 0, + "isInheritTables": false, + "cluster": "", + "ACL": "", + "isPartition": false, + "partitioningStrategy": "None", + "partitionOfSchema": "", + "partitionOfTable": "", + "partitionListValues": [], + "partitionRangeFromValues": [], + "partitionRangeToValues": [], + "foreignServer": "", + "foreignOptionDisplay": "", + "fields": [ + { + "objectType": "TableField_PGSQL", + "name": "id", + "type": "int4", + "length": 32, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": false, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "id", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 1, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "projects_id", + "type": "int4", + "length": 32, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": false, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "projects_id", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 2, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "email", + "type": "varchar", + "length": 128, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "Others", + "defaultValue": "'NULL'::character varying", + "comment": "", + "oldName": "email", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 3, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "domain", + "type": "varchar", + "length": 128, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "Others", + "defaultValue": "'NULL'::character varying", + "comment": "", + "oldName": "domain", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 4, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + } + ], + "indexes": [], + "rules": [], + "primaryKey": { + "objectType": "PrimaryKey_PGSQL", + "name": "exclude_pkey", + "fields": [ + "id" + ], + "fillFactor": -1, + "indexTablespace": "", + "comment": "", + "isDeferrable": false, + "isDeferred": false, + "oldName": "exclude_pkey" + }, + "foreignKeys": [], + "uniques": [], + "checks": [], + "excludes": [], + "triggers": [], + "partitionKeys": [], + "partitions": [] + }, + { + "objectType": "TableNormal_PGSQL", + "name": "issue_assignees", + "comment": "", + "tablespace": "", + "isUnlogged": false, + "owner": "augur", + "inheritFromTables": [], + "hasOIDs": false, + "fillFactor": -1, + "oldName": "issue_assignees", + "oid": 15486566, + "rows": 0, + "isInheritTables": false, + "cluster": "", + "ACL": "", + "isPartition": false, + "partitioningStrategy": "None", + "partitionOfSchema": "", + "partitionOfTable": "", + "partitionListValues": [], + "partitionRangeFromValues": [], + "partitionRangeToValues": [], + "foreignServer": "", + "foreignOptionDisplay": "", + "fields": [ + { + "objectType": "TableField_PGSQL", + "name": "issue_assignee_id", + "type": "int8", + "length": 64, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": false, + "defaultType": "Others", + "defaultValue": "nextval('augur_data.issue_assignees_issue_assignee_id_seq'::regclass)", + "comment": "", + "oldName": "issue_assignee_id", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 1, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "issue_id", + "type": "int8", + "length": 64, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "issue_id", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 2, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "cntrb_id", + "type": "int8", + "length": 64, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "cntrb_id", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 3, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "tool_source", + "type": "varchar", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "tool_source", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 4, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "tool_version", + "type": "varchar", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "tool_version", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 5, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "data_source", + "type": "varchar", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "data_source", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 6, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "data_collection_date", + "type": "timestamp", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "Others", + "defaultValue": "CURRENT_TIMESTAMP", + "comment": "", + "oldName": "data_collection_date", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 7, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "issue_assignee_src_id", + "type": "int8", + "length": 64, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "This ID comes from the source. In the case of GitHub, it is the id that is the first field returned from the issue events API in the issue_assignees embedded JSON object. We may discover it is an ID for the person themselves; but my hypothesis is that its not.", + "oldName": "issue_assignee_src_id", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 8, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "issue_assignee_src_node", + "type": "varchar", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "This character based identifier comes from the source. In the case of GitHub, it is the id that is the second field returned from the issue events API in the issue_assignees embedded JSON object. We may discover it is an ID for the person themselves; but my hypothesis is that its not.", + "oldName": "issue_assignee_src_node", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 9, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + } + ], + "indexes": [ + { + "objectType": "Index_PGSQL", + "name": "issue-cntrb-assign-idx-1", + "comment": "", + "isClustered": false, + "isConcurrently": false, + "isUnique": false, + "fastUpdate": "", + "buffering": "", + "fillFactor": -1, + "method": "BTree", + "tableSpaceName": "", + "constraint": "", + "oldName": "issue-cntrb-assign-idx-1", + "oid": 15488149, + "owner": "augur", + "brinPagesPerRange": -1, + "ginPendingListLimit": -1, + "tableName": "issue_assignees", + "size": "8", + "fields": [ + { + "objectType": "IndexField_PGSQL", + "name": "cntrb_id", + "collation": "", + "opClass": "int8_ops", + "opClassSchema": "pg_catalog", + "order": "ASC", + "nullSort": "NULLS LAST", + "oldName": "cntrb_id", + "collationSchema": "" + } + ] + } + ], + "rules": [], + "primaryKey": { + "objectType": "PrimaryKey_PGSQL", + "name": "issue_assignees_pkey", + "fields": [ + "issue_assignee_id" + ], + "fillFactor": -1, + "indexTablespace": "", + "comment": "", + "isDeferrable": false, + "isDeferred": false, + "oldName": "issue_assignees_pkey" + }, + "foreignKeys": [ + { + "objectType": "ForeignKey_PGSQL", + "name": "fk_issue_assignees_contributors_1", + "fields": [ + "cntrb_id" + ], + "referenceSchema": "augur_data", + "referenceTable": "contributors", + "referenceFields": [ + "cntrb_id" + ], + "onDelete": "NO ACTION", + "onUpdate": "NO ACTION", + "comment": "", + "isMatchFull": false, + "isDeferrable": false, + "isDeferred": false, + "sourceCardinality": "ZeroOrManyRelationship", + "targetCardinality": "ZeroOrOneRelationship", + "oldName": "fk_issue_assignees_contributors_1" + }, + { + "objectType": "ForeignKey_PGSQL", + "name": "fk_issue_assignees_issues_1", + "fields": [ + "issue_id" + ], + "referenceSchema": "augur_data", + "referenceTable": "issues", + "referenceFields": [ + "issue_id" + ], + "onDelete": "NO ACTION", + "onUpdate": "NO ACTION", + "comment": "", + "isMatchFull": false, + "isDeferrable": false, + "isDeferred": false, + "sourceCardinality": "ZeroOrManyRelationship", + "targetCardinality": "ZeroOrOneRelationship", + "oldName": "fk_issue_assignees_issues_1" + } + ], + "uniques": [], + "checks": [], + "excludes": [], + "triggers": [], + "partitionKeys": [], + "partitions": [] + }, + { + "objectType": "TableNormal_PGSQL", + "name": "issue_events", + "comment": "", + "tablespace": "", + "isUnlogged": false, + "owner": "augur", + "inheritFromTables": [], + "hasOIDs": false, + "fillFactor": -1, + "oldName": "issue_events", + "oid": 15486574, + "rows": 0, + "isInheritTables": false, + "cluster": "", + "ACL": "", + "isPartition": false, + "partitioningStrategy": "None", + "partitionOfSchema": "", + "partitionOfTable": "", + "partitionListValues": [], + "partitionRangeFromValues": [], + "partitionRangeToValues": [], + "foreignServer": "", + "foreignOptionDisplay": "", + "fields": [ + { + "objectType": "TableField_PGSQL", + "name": "event_id", + "type": "int8", + "length": 64, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": false, + "defaultType": "Others", + "defaultValue": "nextval('augur_data.issue_events_event_id_seq'::regclass)", + "comment": "", + "oldName": "event_id", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 1, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "issue_id", + "type": "int8", + "length": 64, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": false, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "issue_id", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 2, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "cntrb_id", + "type": "int8", + "length": 64, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": false, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "cntrb_id", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 3, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "action", + "type": "varchar", + "length": 255, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": false, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "action", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 4, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "action_commit_hash", + "type": "varchar", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "action_commit_hash", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 5, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "created_at", + "type": "timestamp", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": false, + "defaultType": "Others", + "defaultValue": "CURRENT_TIMESTAMP", + "comment": "", + "oldName": "created_at", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 6, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "node_id", + "type": "varchar", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "This should be renamed to issue_event_src_node_id, as its the varchar identifier in GitHub and likely common in other sources as well. However, since it was created before we came to this naming standard and workers are built around it, we have it simply named as node_id. Anywhere you see node_id in the schema, it comes from GitHubs terminology.", + "oldName": "node_id", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 7, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "node_url", + "type": "varchar", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "node_url", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 8, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": 0, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "tool_source", + "type": "varchar", + "length": 255, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "tool_source", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 9, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "tool_version", + "type": "varchar", + "length": 255, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "tool_version", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 10, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "data_source", + "type": "varchar", + "length": 255, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "data_source", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 11, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "data_collection_date", + "type": "timestamp", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "Others", + "defaultValue": "CURRENT_TIMESTAMP", + "comment": "", + "oldName": "data_collection_date", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 12, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "issue_event_src_id", + "type": "int8", + "length": 64, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "This ID comes from the source. In the case of GitHub, it is the id that is the first field returned from the issue events API", + "oldName": "issue_event_src_id", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 13, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + } + ], + "indexes": [ + { + "objectType": "Index_PGSQL", + "name": "issue-cntrb-idx2", + "comment": "", + "isClustered": false, + "isConcurrently": false, + "isUnique": false, + "fastUpdate": "", + "buffering": "", + "fillFactor": -1, + "method": "BTree", + "tableSpaceName": "", + "constraint": "", + "oldName": "issue-cntrb-idx2", + "oid": 15488151, + "owner": "augur", + "brinPagesPerRange": -1, + "ginPendingListLimit": -1, + "tableName": "issue_events", + "size": "8", + "fields": [ + { + "objectType": "IndexField_PGSQL", + "name": "issue_event_src_id", + "collation": "", + "opClass": "int8_ops", + "opClassSchema": "pg_catalog", + "order": "ASC", + "nullSort": "NULLS LAST", + "oldName": "issue_event_src_id", + "collationSchema": "" + } + ] + }, + { + "objectType": "Index_PGSQL", + "name": "issue_events_ibfk_1", + "comment": "", + "isClustered": false, + "isConcurrently": false, + "isUnique": false, + "fastUpdate": "", + "buffering": "", + "fillFactor": -1, + "method": "BTree", + "tableSpaceName": "", + "constraint": "", + "oldName": "issue_events_ibfk_1", + "oid": 15486955, + "owner": "augur", + "brinPagesPerRange": -1, + "ginPendingListLimit": -1, + "tableName": "issue_events", + "size": "8", + "fields": [ + { + "objectType": "IndexField_PGSQL", + "name": "issue_id", + "collation": "", + "opClass": "int8_ops", + "opClassSchema": "pg_catalog", + "order": "ASC", + "nullSort": "NULLS LAST", + "oldName": "issue_id", + "collationSchema": "" + } + ] + }, + { + "objectType": "Index_PGSQL", + "name": "issue_events_ibfk_2", + "comment": "", + "isClustered": false, + "isConcurrently": false, + "isUnique": false, + "fastUpdate": "", + "buffering": "", + "fillFactor": -1, + "method": "BTree", + "tableSpaceName": "", + "constraint": "", + "oldName": "issue_events_ibfk_2", + "oid": 15486956, + "owner": "augur", + "brinPagesPerRange": -1, + "ginPendingListLimit": -1, + "tableName": "issue_events", + "size": "8", + "fields": [ + { + "objectType": "IndexField_PGSQL", + "name": "cntrb_id", + "collation": "", + "opClass": "int8_ops", + "opClassSchema": "pg_catalog", + "order": "ASC", + "nullSort": "NULLS LAST", + "oldName": "cntrb_id", + "collationSchema": "" + } + ] + } + ], + "rules": [], + "primaryKey": { + "objectType": "PrimaryKey_PGSQL", + "name": "issue_events_pkey", + "fields": [ + "event_id" + ], + "fillFactor": -1, + "indexTablespace": "", + "comment": "", + "isDeferrable": false, + "isDeferred": false, + "oldName": "issue_events_pkey" + }, + "foreignKeys": [ + { + "objectType": "ForeignKey_PGSQL", + "name": "fk_issue_events_contributors_1", + "fields": [ + "cntrb_id" + ], + "referenceSchema": "augur_data", + "referenceTable": "contributors", + "referenceFields": [ + "cntrb_id" + ], + "onDelete": "NO ACTION", + "onUpdate": "NO ACTION", + "comment": "", + "isMatchFull": false, + "isDeferrable": false, + "isDeferred": false, + "sourceCardinality": "ZeroOrManyRelationship", + "targetCardinality": "OneAndOnlyOneRelationship", + "oldName": "fk_issue_events_contributors_1" + }, + { + "objectType": "ForeignKey_PGSQL", + "name": "fk_issue_events_issues_1", + "fields": [ + "issue_id" + ], + "referenceSchema": "augur_data", + "referenceTable": "issues", + "referenceFields": [ + "issue_id" + ], + "onDelete": "NO ACTION", + "onUpdate": "NO ACTION", + "comment": "", + "isMatchFull": false, + "isDeferrable": false, + "isDeferred": false, + "sourceCardinality": "ZeroOrManyRelationship", + "targetCardinality": "OneAndOnlyOneRelationship", + "oldName": "fk_issue_events_issues_1" + } + ], + "uniques": [], + "checks": [], + "excludes": [], + "triggers": [], + "partitionKeys": [], + "partitions": [] + }, + { + "objectType": "TableNormal_PGSQL", + "name": "issue_labels", + "comment": "", + "tablespace": "", + "isUnlogged": false, + "owner": "augur", + "inheritFromTables": [], + "hasOIDs": false, + "fillFactor": -1, + "oldName": "issue_labels", + "oid": 15486583, + "rows": 0, + "isInheritTables": false, + "cluster": "", + "ACL": "", + "isPartition": false, + "partitioningStrategy": "None", + "partitionOfSchema": "", + "partitionOfTable": "", + "partitionListValues": [], + "partitionRangeFromValues": [], + "partitionRangeToValues": [], + "foreignServer": "", + "foreignOptionDisplay": "", + "fields": [ + { + "objectType": "TableField_PGSQL", + "name": "issue_label_id", + "type": "int8", + "length": 64, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": false, + "defaultType": "Others", + "defaultValue": "nextval('augur_data.issue_labels_issue_label_id_seq'::regclass)", + "comment": "", + "oldName": "issue_label_id", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 1, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "issue_id", + "type": "int8", + "length": 64, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "issue_id", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 2, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "label_text", + "type": "varchar", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "label_text", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 3, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "label_description", + "type": "varchar", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "label_description", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 4, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "label_color", + "type": "varchar", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "label_color", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 5, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "tool_source", + "type": "varchar", + "length": 255, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "tool_source", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 6, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "tool_version", + "type": "varchar", + "length": 255, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "tool_version", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 7, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "data_source", + "type": "varchar", + "length": 255, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "data_source", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 8, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "data_collection_date", + "type": "timestamp", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "Others", + "defaultValue": "CURRENT_TIMESTAMP", + "comment": "", + "oldName": "data_collection_date", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 9, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "label_src_id", + "type": "int8", + "length": 64, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "This character based identifier (node) comes from the source. In the case of GitHub, it is the id that is the second field returned from the issue events API JSON subsection for issues.", + "oldName": "label_src_id", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 10, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "label_src_node_id", + "type": "varchar", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "label_src_node_id", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 11, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + } + ], + "indexes": [], + "rules": [], + "primaryKey": { + "objectType": "PrimaryKey_PGSQL", + "name": "issue_labels_pkey", + "fields": [ + "issue_label_id" + ], + "fillFactor": -1, + "indexTablespace": "", + "comment": "", + "isDeferrable": false, + "isDeferred": false, + "oldName": "issue_labels_pkey" + }, + "foreignKeys": [ + { + "objectType": "ForeignKey_PGSQL", + "name": "fk_issue_labels_issues_1", + "fields": [ + "issue_id" + ], + "referenceSchema": "augur_data", + "referenceTable": "issues", + "referenceFields": [ + "issue_id" + ], + "onDelete": "NO ACTION", + "onUpdate": "NO ACTION", + "comment": "", + "isMatchFull": false, + "isDeferrable": false, + "isDeferred": false, + "sourceCardinality": "ZeroOrManyRelationship", + "targetCardinality": "ZeroOrOneRelationship", + "oldName": "fk_issue_labels_issues_1" + } + ], + "uniques": [], + "checks": [], + "excludes": [], + "triggers": [], + "partitionKeys": [], + "partitions": [] + }, + { + "objectType": "TableNormal_PGSQL", + "name": "issue_message_ref", + "comment": "", + "tablespace": "", + "isUnlogged": false, + "owner": "augur", + "inheritFromTables": [], + "hasOIDs": false, + "fillFactor": -1, + "oldName": "issue_message_ref", + "oid": 15486591, + "rows": 0, + "isInheritTables": false, + "cluster": "", + "ACL": "", + "isPartition": false, + "partitioningStrategy": "None", + "partitionOfSchema": "", + "partitionOfTable": "", + "partitionListValues": [], + "partitionRangeFromValues": [], + "partitionRangeToValues": [], + "foreignServer": "", + "foreignOptionDisplay": "", + "fields": [ + { + "objectType": "TableField_PGSQL", + "name": "issue_msg_ref_id", + "type": "int8", + "length": 64, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": false, + "defaultType": "Others", + "defaultValue": "nextval('augur_data.issue_message_ref_issue_msg_ref_id_seq'::regclass)", + "comment": "", + "oldName": "issue_msg_ref_id", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 1, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "issue_id", + "type": "int8", + "length": 64, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "issue_id", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 2, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "msg_id", + "type": "int8", + "length": 64, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "msg_id", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 3, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "tool_source", + "type": "varchar", + "length": 255, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "tool_source", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 4, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "tool_version", + "type": "varchar", + "length": 255, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "tool_version", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 5, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "data_source", + "type": "varchar", + "length": 255, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "data_source", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 6, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "data_collection_date", + "type": "timestamp", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "Others", + "defaultValue": "CURRENT_TIMESTAMP", + "comment": "", + "oldName": "data_collection_date", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 7, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "issue_msg_ref_src_comment_id", + "type": "int8", + "length": 64, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "This ID comes from the source. In the case of GitHub, it is the id that is the first field returned from the issue comments API", + "oldName": "issue_msg_ref_src_comment_id", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 8, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "issue_msg_ref_src_node_id", + "type": "varchar", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "This character based identifier comes from the source. In the case of GitHub, it is the id that is the first field returned from the issue comments API", + "oldName": "issue_msg_ref_src_node_id", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 9, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "repo_id", + "type": "int8", + "length": 64, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "repo_id", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 10, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + } + ], + "indexes": [], + "rules": [], + "primaryKey": { + "objectType": "PrimaryKey_PGSQL", + "name": "issue_message_ref_pkey", + "fields": [ + "issue_msg_ref_id" + ], + "fillFactor": -1, + "indexTablespace": "", + "comment": "", + "isDeferrable": false, + "isDeferred": false, + "oldName": "issue_message_ref_pkey" + }, + "foreignKeys": [ + { + "objectType": "ForeignKey_PGSQL", + "name": "fk_issue_message_ref_issues_1", + "fields": [ + "issue_id" + ], + "referenceSchema": "augur_data", + "referenceTable": "issues", + "referenceFields": [ + "issue_id" + ], + "onDelete": "RESTRICT", + "onUpdate": "CASCADE", + "comment": "", + "isMatchFull": false, + "isDeferrable": false, + "isDeferred": false, + "sourceCardinality": "ZeroOrManyRelationship", + "targetCardinality": "ZeroOrOneRelationship", + "oldName": "fk_issue_message_ref_issues_1" + }, + { + "objectType": "ForeignKey_PGSQL", + "name": "fk_issue_message_ref_message_1", + "fields": [ + "msg_id" + ], + "referenceSchema": "augur_data", + "referenceTable": "message", + "referenceFields": [ + "msg_id" + ], + "onDelete": "RESTRICT", + "onUpdate": "CASCADE", + "comment": "", + "isMatchFull": false, + "isDeferrable": false, + "isDeferred": false, + "sourceCardinality": "ZeroOrManyRelationship", + "targetCardinality": "ZeroOrOneRelationship", + "oldName": "fk_issue_message_ref_message_1" + } + ], + "uniques": [], + "checks": [], + "excludes": [], + "triggers": [], + "partitionKeys": [], + "partitions": [] + }, + { + "objectType": "TableNormal_PGSQL", + "name": "issues", + "comment": "", + "tablespace": "", + "isUnlogged": false, + "owner": "augur", + "inheritFromTables": [], + "hasOIDs": false, + "fillFactor": -1, + "oldName": "issues", + "oid": 15486599, + "rows": 12103, + "isInheritTables": false, + "cluster": "", + "ACL": "", + "isPartition": false, + "partitioningStrategy": "None", + "partitionOfSchema": "", + "partitionOfTable": "", + "partitionListValues": [], + "partitionRangeFromValues": [], + "partitionRangeToValues": [], + "foreignServer": "", + "foreignOptionDisplay": "", + "fields": [ + { + "objectType": "TableField_PGSQL", + "name": "issue_id", + "type": "int8", + "length": 64, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": false, + "defaultType": "Others", + "defaultValue": "nextval('augur_data.issue_seq'::regclass)", + "comment": "", + "oldName": "issue_id", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 1, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "repo_id", + "type": "int8", + "length": 64, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "repo_id", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 2, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "reporter_id", + "type": "int8", + "length": 64, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "The ID of the person who opened the issue. ", + "oldName": "reporter_id", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 3, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "pull_request", + "type": "int8", + "length": 64, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "pull_request", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 4, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "pull_request_id", + "type": "int8", + "length": 64, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "pull_request_id", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 5, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "created_at", + "type": "timestamp", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "created_at", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 6, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "issue_title", + "type": "varchar", + "length": 500, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "issue_title", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 7, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "issue_body", + "type": "text", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "issue_body", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 8, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "cntrb_id", + "type": "int8", + "length": 64, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "The ID of the person who closed the issue. ", + "oldName": "cntrb_id", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 9, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "comment_count", + "type": "int8", + "length": 64, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "comment_count", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 10, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "updated_at", + "type": "timestamp", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "updated_at", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 11, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "closed_at", + "type": "timestamp", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "closed_at", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 12, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "due_on", + "type": "timestamp", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "due_on", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 13, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "repository_url", + "type": "varchar", + "length": 4000, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "repository_url", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 14, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "issue_url", + "type": "varchar", + "length": 4000, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "issue_url", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 15, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "labels_url", + "type": "varchar", + "length": 4000, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "labels_url", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 16, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "comments_url", + "type": "varchar", + "length": 4000, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "comments_url", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 17, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "events_url", + "type": "varchar", + "length": 4000, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "events_url", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 18, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "html_url", + "type": "varchar", + "length": 4000, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "html_url", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 19, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "issue_state", + "type": "varchar", + "length": 255, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "issue_state", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 20, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "issue_node_id", + "type": "varchar", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "issue_node_id", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 21, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "gh_issue_id", + "type": "int8", + "length": 64, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "gh_issue_id", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 22, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "gh_user_id", + "type": "int8", + "length": 64, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "gh_user_id", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 23, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "tool_source", + "type": "varchar", + "length": 255, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "tool_source", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 24, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "tool_version", + "type": "varchar", + "length": 255, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "tool_version", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 25, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "data_source", + "type": "varchar", + "length": 255, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "data_source", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 26, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "data_collection_date", + "type": "timestamp", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "Others", + "defaultValue": "CURRENT_TIMESTAMP", + "comment": "", + "oldName": "data_collection_date", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 27, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "gh_issue_number", + "type": "int8", + "length": 64, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "gh_issue_number", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 28, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + } + ], + "indexes": [ + { + "objectType": "Index_PGSQL", + "name": "issue-cntrb-dix2", + "comment": "", + "isClustered": false, + "isConcurrently": false, + "isUnique": false, + "fastUpdate": "", + "buffering": "", + "fillFactor": -1, + "method": "BTree", + "tableSpaceName": "", + "constraint": "", + "oldName": "issue-cntrb-dix2", + "oid": 15488150, + "owner": "augur", + "brinPagesPerRange": -1, + "ginPendingListLimit": -1, + "tableName": "issues", + "size": "264", + "fields": [ + { + "objectType": "IndexField_PGSQL", + "name": "cntrb_id", + "collation": "", + "opClass": "int8_ops", + "opClassSchema": "pg_catalog", + "order": "ASC", + "nullSort": "NULLS LAST", + "oldName": "cntrb_id", + "collationSchema": "" + } + ] + }, + { + "objectType": "Index_PGSQL", + "name": "issues_ibfk_1", + "comment": "", + "isClustered": false, + "isConcurrently": false, + "isUnique": false, + "fastUpdate": "", + "buffering": "", + "fillFactor": -1, + "method": "BTree", + "tableSpaceName": "", + "constraint": "", + "oldName": "issues_ibfk_1", + "oid": 15486963, + "owner": "augur", + "brinPagesPerRange": -1, + "ginPendingListLimit": -1, + "tableName": "issues", + "size": "272", + "fields": [ + { + "objectType": "IndexField_PGSQL", + "name": "repo_id", + "collation": "", + "opClass": "int8_ops", + "opClassSchema": "pg_catalog", + "order": "ASC", + "nullSort": "NULLS LAST", + "oldName": "repo_id", + "collationSchema": "" + } + ] + }, + { + "objectType": "Index_PGSQL", + "name": "issues_ibfk_2", + "comment": "", + "isClustered": false, + "isConcurrently": false, + "isUnique": false, + "fastUpdate": "", + "buffering": "", + "fillFactor": -1, + "method": "BTree", + "tableSpaceName": "", + "constraint": "", + "oldName": "issues_ibfk_2", + "oid": 15486964, + "owner": "augur", + "brinPagesPerRange": -1, + "ginPendingListLimit": -1, + "tableName": "issues", + "size": "408", + "fields": [ + { + "objectType": "IndexField_PGSQL", + "name": "reporter_id", + "collation": "", + "opClass": "int8_ops", + "opClassSchema": "pg_catalog", + "order": "ASC", + "nullSort": "NULLS LAST", + "oldName": "reporter_id", + "collationSchema": "" + } + ] + }, + { + "objectType": "Index_PGSQL", + "name": "issues_ibfk_4", + "comment": "", + "isClustered": false, + "isConcurrently": false, + "isUnique": false, + "fastUpdate": "", + "buffering": "", + "fillFactor": -1, + "method": "BTree", + "tableSpaceName": "", + "constraint": "", + "oldName": "issues_ibfk_4", + "oid": 15486965, + "owner": "augur", + "brinPagesPerRange": -1, + "ginPendingListLimit": -1, + "tableName": "issues", + "size": "376", + "fields": [ + { + "objectType": "IndexField_PGSQL", + "name": "pull_request_id", + "collation": "", + "opClass": "int8_ops", + "opClassSchema": "pg_catalog", + "order": "ASC", + "nullSort": "NULLS LAST", + "oldName": "pull_request_id", + "collationSchema": "" + } + ] + } + ], + "rules": [], + "primaryKey": { + "objectType": "PrimaryKey_PGSQL", + "name": "issues_pkey", + "fields": [ + "issue_id" + ], + "fillFactor": -1, + "indexTablespace": "", + "comment": "", + "isDeferrable": false, + "isDeferred": false, + "oldName": "issues_pkey" + }, + "foreignKeys": [ + { + "objectType": "ForeignKey_PGSQL", + "name": "fk_issues_contributors_1", + "fields": [ + "cntrb_id" + ], + "referenceSchema": "augur_data", + "referenceTable": "contributors", + "referenceFields": [ + "cntrb_id" + ], + "onDelete": "NO ACTION", + "onUpdate": "NO ACTION", + "comment": "", + "isMatchFull": false, + "isDeferrable": false, + "isDeferred": false, + "sourceCardinality": "ZeroOrManyRelationship", + "targetCardinality": "ZeroOrOneRelationship", + "oldName": "fk_issues_contributors_1" + }, + { + "objectType": "ForeignKey_PGSQL", + "name": "fk_issues_contributors_2", + "fields": [ + "reporter_id" + ], + "referenceSchema": "augur_data", + "referenceTable": "contributors", + "referenceFields": [ + "cntrb_id" + ], + "onDelete": "NO ACTION", + "onUpdate": "NO ACTION", + "comment": "", + "isMatchFull": false, + "isDeferrable": false, + "isDeferred": false, + "sourceCardinality": "ZeroOrManyRelationship", + "targetCardinality": "ZeroOrOneRelationship", + "oldName": "fk_issues_contributors_2" + }, + { + "objectType": "ForeignKey_PGSQL", + "name": "fk_issues_repo", + "fields": [ + "repo_id" + ], + "referenceSchema": "augur_data", + "referenceTable": "repo", + "referenceFields": [ + "repo_id" + ], + "onDelete": "CASCADE", + "onUpdate": "CASCADE", + "comment": "", + "isMatchFull": false, + "isDeferrable": false, + "isDeferred": false, + "sourceCardinality": "ZeroOrManyRelationship", + "targetCardinality": "ZeroOrOneRelationship", + "oldName": "fk_issues_repo" + } + ], + "uniques": [], + "checks": [], + "excludes": [], + "triggers": [], + "partitionKeys": [], + "partitions": [] + }, + { + "objectType": "TableNormal_PGSQL", + "name": "libraries", + "comment": "", + "tablespace": "", + "isUnlogged": false, + "owner": "augur", + "inheritFromTables": [], + "hasOIDs": false, + "fillFactor": -1, + "oldName": "libraries", + "oid": 15486607, + "rows": 0, + "isInheritTables": false, + "cluster": "", + "ACL": "", + "isPartition": false, + "partitioningStrategy": "None", + "partitionOfSchema": "", + "partitionOfTable": "", + "partitionListValues": [], + "partitionRangeFromValues": [], + "partitionRangeToValues": [], + "foreignServer": "", + "foreignOptionDisplay": "", + "fields": [ + { + "objectType": "TableField_PGSQL", + "name": "library_id", + "type": "int8", + "length": 64, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": false, + "defaultType": "Others", + "defaultValue": "nextval('augur_data.libraries_library_id_seq'::regclass)", + "comment": "", + "oldName": "library_id", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 1, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "repo_id", + "type": "int8", + "length": 64, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "repo_id", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 2, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "platform", + "type": "varchar", + "length": 255, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "Others", + "defaultValue": "NULL::character varying", + "comment": "", + "oldName": "platform", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 3, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "name", + "type": "varchar", + "length": 255, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "Others", + "defaultValue": "NULL::character varying", + "comment": "", + "oldName": "name", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 4, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "created_timestamp", + "type": "timestamp", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "Others", + "defaultValue": "NULL::timestamp without time zone", + "comment": "", + "oldName": "created_timestamp", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 5, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "updated_timestamp", + "type": "timestamp", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "Others", + "defaultValue": "NULL::timestamp without time zone", + "comment": "", + "oldName": "updated_timestamp", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 6, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "library_description", + "type": "varchar", + "length": 2000, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "Others", + "defaultValue": "NULL::character varying", + "comment": "", + "oldName": "library_description", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 7, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "keywords", + "type": "varchar", + "length": 255, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "Others", + "defaultValue": "NULL::character varying", + "comment": "", + "oldName": "keywords", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 8, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "library_homepage", + "type": "varchar", + "length": 1000, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "Others", + "defaultValue": "NULL::character varying", + "comment": "", + "oldName": "library_homepage", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 9, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "license", + "type": "varchar", + "length": 255, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "Others", + "defaultValue": "NULL::character varying", + "comment": "", + "oldName": "license", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 10, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "version_count", + "type": "int4", + "length": 32, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "version_count", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 11, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "latest_release_timestamp", + "type": "varchar", + "length": 255, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "Others", + "defaultValue": "NULL::character varying", + "comment": "", + "oldName": "latest_release_timestamp", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 12, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "latest_release_number", + "type": "varchar", + "length": 255, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "Others", + "defaultValue": "NULL::character varying", + "comment": "", + "oldName": "latest_release_number", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 13, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "package_manager_id", + "type": "varchar", + "length": 255, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "Others", + "defaultValue": "NULL::character varying", + "comment": "", + "oldName": "package_manager_id", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 14, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "dependency_count", + "type": "int4", + "length": 32, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "dependency_count", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 15, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "dependent_library_count", + "type": "int4", + "length": 32, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "dependent_library_count", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 16, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "primary_language", + "type": "varchar", + "length": 255, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "Others", + "defaultValue": "NULL::character varying", + "comment": "", + "oldName": "primary_language", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 17, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "tool_source", + "type": "varchar", + "length": 255, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "tool_source", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 18, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "tool_version", + "type": "varchar", + "length": 255, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "tool_version", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 19, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "data_source", + "type": "varchar", + "length": 255, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "data_source", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 20, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "data_collection_date", + "type": "timestamp", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "data_collection_date", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 21, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + } + ], + "indexes": [], + "rules": [], + "primaryKey": { + "objectType": "PrimaryKey_PGSQL", + "name": "libraries_pkey", + "fields": [ + "library_id" + ], + "fillFactor": -1, + "indexTablespace": "", + "comment": "", + "isDeferrable": false, + "isDeferred": false, + "oldName": "libraries_pkey" + }, + "foreignKeys": [ + { + "objectType": "ForeignKey_PGSQL", + "name": "fk_libraries_repo_1", + "fields": [ + "repo_id" + ], + "referenceSchema": "augur_data", + "referenceTable": "repo", + "referenceFields": [ + "repo_id" + ], + "onDelete": "NO ACTION", + "onUpdate": "NO ACTION", + "comment": "", + "isMatchFull": false, + "isDeferrable": false, + "isDeferred": false, + "sourceCardinality": "ZeroOrManyRelationship", + "targetCardinality": "ZeroOrOneRelationship", + "oldName": "fk_libraries_repo_1" + } + ], + "uniques": [], + "checks": [], + "excludes": [], + "triggers": [], + "partitionKeys": [], + "partitions": [] + }, + { + "objectType": "TableNormal_PGSQL", + "name": "library_dependencies", + "comment": "", + "tablespace": "", + "isUnlogged": false, + "owner": "augur", + "inheritFromTables": [], + "hasOIDs": false, + "fillFactor": -1, + "oldName": "library_dependencies", + "oid": 15486626, + "rows": 0, + "isInheritTables": false, + "cluster": "", + "ACL": "", + "isPartition": false, + "partitioningStrategy": "None", + "partitionOfSchema": "", + "partitionOfTable": "", + "partitionListValues": [], + "partitionRangeFromValues": [], + "partitionRangeToValues": [], + "foreignServer": "", + "foreignOptionDisplay": "", + "fields": [ + { + "objectType": "TableField_PGSQL", + "name": "lib_dependency_id", + "type": "int8", + "length": 64, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": false, + "defaultType": "Others", + "defaultValue": "nextval('augur_data.library_dependencies_lib_dependency_id_seq'::regclass)", + "comment": "", + "oldName": "lib_dependency_id", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 1, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "library_id", + "type": "int8", + "length": 64, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "library_id", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 2, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "manifest_platform", + "type": "varchar", + "length": 255, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "Others", + "defaultValue": "NULL::character varying", + "comment": "", + "oldName": "manifest_platform", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 3, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "manifest_filepath", + "type": "varchar", + "length": 1000, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "Others", + "defaultValue": "NULL::character varying", + "comment": "", + "oldName": "manifest_filepath", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 4, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "manifest_kind", + "type": "varchar", + "length": 255, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "Others", + "defaultValue": "NULL::character varying", + "comment": "", + "oldName": "manifest_kind", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 5, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "repo_id_branch", + "type": "varchar", + "length": 255, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": false, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "repo_id_branch", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 6, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "tool_source", + "type": "varchar", + "length": 255, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "tool_source", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 7, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "tool_version", + "type": "varchar", + "length": 255, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "tool_version", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 8, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "data_source", + "type": "varchar", + "length": 255, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "data_source", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 9, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "data_collection_date", + "type": "timestamp", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "data_collection_date", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 10, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + } + ], + "indexes": [ + { + "objectType": "Index_PGSQL", + "name": "REPO_DEP", + "comment": "", + "isClustered": false, + "isConcurrently": false, + "isUnique": false, + "fastUpdate": "", + "buffering": "", + "fillFactor": -1, + "method": "BTree", + "tableSpaceName": "", + "constraint": "", + "oldName": "REPO_DEP", + "oid": 15486970, + "owner": "augur", + "brinPagesPerRange": -1, + "ginPendingListLimit": -1, + "tableName": "library_dependencies", + "size": "8", + "fields": [ + { + "objectType": "IndexField_PGSQL", + "name": "library_id", + "collation": "", + "opClass": "int8_ops", + "opClassSchema": "pg_catalog", + "order": "ASC", + "nullSort": "NULLS LAST", + "oldName": "library_id", + "collationSchema": "" + } + ] + } + ], + "rules": [], + "primaryKey": { + "objectType": "PrimaryKey_PGSQL", + "name": "library_dependencies_pkey", + "fields": [ + "lib_dependency_id" + ], + "fillFactor": -1, + "indexTablespace": "", + "comment": "", + "isDeferrable": false, + "isDeferred": false, + "oldName": "library_dependencies_pkey" + }, + "foreignKeys": [ + { + "objectType": "ForeignKey_PGSQL", + "name": "fk_library_dependencies_libraries_1", + "fields": [ + "library_id" + ], + "referenceSchema": "augur_data", + "referenceTable": "libraries", + "referenceFields": [ + "library_id" + ], + "onDelete": "NO ACTION", + "onUpdate": "NO ACTION", + "comment": "", + "isMatchFull": false, + "isDeferrable": false, + "isDeferred": false, + "sourceCardinality": "ZeroOrManyRelationship", + "targetCardinality": "ZeroOrOneRelationship", + "oldName": "fk_library_dependencies_libraries_1" + } + ], + "uniques": [], + "checks": [], + "excludes": [], + "triggers": [], + "partitionKeys": [], + "partitions": [] + }, + { + "objectType": "TableNormal_PGSQL", + "name": "library_version", + "comment": "", + "tablespace": "", + "isUnlogged": false, + "owner": "augur", + "inheritFromTables": [], + "hasOIDs": false, + "fillFactor": -1, + "oldName": "library_version", + "oid": 15486636, + "rows": 0, + "isInheritTables": false, + "cluster": "", + "ACL": "", + "isPartition": false, + "partitioningStrategy": "None", + "partitionOfSchema": "", + "partitionOfTable": "", + "partitionListValues": [], + "partitionRangeFromValues": [], + "partitionRangeToValues": [], + "foreignServer": "", + "foreignOptionDisplay": "", + "fields": [ + { + "objectType": "TableField_PGSQL", + "name": "library_version_id", + "type": "int8", + "length": 64, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": false, + "defaultType": "Others", + "defaultValue": "nextval('augur_data.library_version_library_version_id_seq'::regclass)", + "comment": "", + "oldName": "library_version_id", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 1, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "library_id", + "type": "int8", + "length": 64, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "library_id", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 2, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "library_platform", + "type": "varchar", + "length": 255, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "Others", + "defaultValue": "NULL::character varying", + "comment": "", + "oldName": "library_platform", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 3, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "version_number", + "type": "varchar", + "length": 255, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "Others", + "defaultValue": "NULL::character varying", + "comment": "", + "oldName": "version_number", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 4, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "version_release_date", + "type": "timestamp", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "Others", + "defaultValue": "NULL::timestamp without time zone", + "comment": "", + "oldName": "version_release_date", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 5, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "tool_source", + "type": "varchar", + "length": 255, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "tool_source", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 6, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "tool_version", + "type": "varchar", + "length": 255, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "tool_version", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 7, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "data_source", + "type": "varchar", + "length": 255, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "data_source", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 8, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "data_collection_date", + "type": "timestamp", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "data_collection_date", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 9, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + } + ], + "indexes": [], + "rules": [], + "primaryKey": { + "objectType": "PrimaryKey_PGSQL", + "name": "library_version_pkey", + "fields": [ + "library_version_id" + ], + "fillFactor": -1, + "indexTablespace": "", + "comment": "", + "isDeferrable": false, + "isDeferred": false, + "oldName": "library_version_pkey" + }, + "foreignKeys": [ + { + "objectType": "ForeignKey_PGSQL", + "name": "fk_library_version_libraries_1", + "fields": [ + "library_id" + ], + "referenceSchema": "augur_data", + "referenceTable": "libraries", + "referenceFields": [ + "library_id" + ], + "onDelete": "NO ACTION", + "onUpdate": "NO ACTION", + "comment": "", + "isMatchFull": false, + "isDeferrable": false, + "isDeferred": false, + "sourceCardinality": "ZeroOrManyRelationship", + "targetCardinality": "ZeroOrOneRelationship", + "oldName": "fk_library_version_libraries_1" + } + ], + "uniques": [], + "checks": [], + "excludes": [], + "triggers": [], + "partitionKeys": [], + "partitions": [] + }, + { + "objectType": "TableNormal_PGSQL", + "name": "lstm_anomaly_models", + "comment": "", + "tablespace": "", + "isUnlogged": false, + "owner": "augur", + "inheritFromTables": [], + "hasOIDs": false, + "fillFactor": -1, + "oldName": "lstm_anomaly_models", + "oid": 15488067, + "rows": 0, + "isInheritTables": false, + "cluster": "", + "ACL": "", + "isPartition": false, + "partitioningStrategy": "None", + "partitionOfSchema": "", + "partitionOfTable": "", + "partitionListValues": [], + "partitionRangeFromValues": [], + "partitionRangeToValues": [], + "foreignServer": "", + "foreignOptionDisplay": "", + "fields": [ + { + "objectType": "TableField_PGSQL", + "name": "model_id", + "type": "int8", + "length": 64, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": false, + "defaultType": "Others", + "defaultValue": "nextval('augur_data.lstm_anomaly_models_model_id_seq'::regclass)", + "comment": "", + "oldName": "model_id", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 1, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "model_name", + "type": "varchar", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "model_name", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 2, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "model_description", + "type": "varchar", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "model_description", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 3, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "look_back_days", + "type": "int8", + "length": 64, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "look_back_days", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 4, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "training_days", + "type": "int8", + "length": 64, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "training_days", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 5, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "batch_size", + "type": "int8", + "length": 64, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "batch_size", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 6, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "metric", + "type": "varchar", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "metric", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 7, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "tool_source", + "type": "varchar", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "tool_source", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 8, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "tool_version", + "type": "varchar", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "tool_version", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 9, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "data_source", + "type": "varchar", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "data_source", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 10, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "data_collection_date", + "type": "timestamp", + "length": 6, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "Others", + "defaultValue": "CURRENT_TIMESTAMP", + "comment": "", + "oldName": "data_collection_date", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 11, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + } + ], + "indexes": [], + "rules": [], + "primaryKey": { + "objectType": "PrimaryKey_PGSQL", + "name": "lstm_anomaly_models_pkey", + "fields": [ + "model_id" + ], + "fillFactor": -1, + "indexTablespace": "", + "comment": "", + "isDeferrable": false, + "isDeferred": false, + "oldName": "lstm_anomaly_models_pkey" + }, + "foreignKeys": [], + "uniques": [], + "checks": [], + "excludes": [], + "triggers": [], + "partitionKeys": [], + "partitions": [] + }, + { + "objectType": "TableNormal_PGSQL", + "name": "lstm_anomaly_results", + "comment": "", + "tablespace": "", + "isUnlogged": false, + "owner": "augur", + "inheritFromTables": [], + "hasOIDs": false, + "fillFactor": -1, + "oldName": "lstm_anomaly_results", + "oid": 15488077, + "rows": 0, + "isInheritTables": false, + "cluster": "", + "ACL": "", + "isPartition": false, + "partitioningStrategy": "None", + "partitionOfSchema": "", + "partitionOfTable": "", + "partitionListValues": [], + "partitionRangeFromValues": [], + "partitionRangeToValues": [], + "foreignServer": "", + "foreignOptionDisplay": "", + "fields": [ + { + "objectType": "TableField_PGSQL", + "name": "result_id", + "type": "int8", + "length": 64, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": false, + "defaultType": "Others", + "defaultValue": "nextval('augur_data.lstm_anomaly_results_result_id_seq'::regclass)", + "comment": "", + "oldName": "result_id", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 1, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "repo_id", + "type": "int8", + "length": 64, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "repo_id", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 2, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "repo_category", + "type": "varchar", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "repo_category", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 3, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "model_id", + "type": "int8", + "length": 64, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "model_id", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 4, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "metric", + "type": "varchar", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "metric", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 5, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "contamination_factor", + "type": "float8", + "length": 53, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "contamination_factor", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 6, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "mean_absolute_error", + "type": "float8", + "length": 53, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "mean_absolute_error", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 7, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "remarks", + "type": "varchar", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "remarks", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 8, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "metric_field", + "type": "varchar", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "This is a listing of all of the endpoint fields included in the generation of the metric. Sometimes there is one, sometimes there is more than one. This will list them all. ", + "oldName": "metric_field", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 9, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "mean_absolute_actual_value", + "type": "float8", + "length": 53, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "mean_absolute_actual_value", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 10, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "mean_absolute_prediction_value", + "type": "float8", + "length": 53, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "mean_absolute_prediction_value", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 11, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "tool_source", + "type": "varchar", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "tool_source", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 12, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "tool_version", + "type": "varchar", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "tool_version", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 13, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "data_source", + "type": "varchar", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "data_source", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 14, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "data_collection_date", + "type": "timestamp", + "length": 6, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "Others", + "defaultValue": "CURRENT_TIMESTAMP", + "comment": "", + "oldName": "data_collection_date", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 15, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + } + ], + "indexes": [], + "rules": [], + "primaryKey": { + "objectType": "PrimaryKey_PGSQL", + "name": "lstm_anomaly_results_pkey", + "fields": [ + "result_id" + ], + "fillFactor": -1, + "indexTablespace": "", + "comment": "", + "isDeferrable": false, + "isDeferred": false, + "oldName": "lstm_anomaly_results_pkey" + }, + "foreignKeys": [ + { + "objectType": "ForeignKey_PGSQL", + "name": "fk_lstm_anomaly_results_lstm_anomaly_models_1", + "fields": [ + "model_id" + ], + "referenceSchema": "augur_data", + "referenceTable": "lstm_anomaly_models", + "referenceFields": [ + "model_id" + ], + "onDelete": "NO ACTION", + "onUpdate": "NO ACTION", + "comment": "", + "isMatchFull": false, + "isDeferrable": false, + "isDeferred": false, + "sourceCardinality": "ZeroOrManyRelationship", + "targetCardinality": "ZeroOrOneRelationship", + "oldName": "fk_lstm_anomaly_results_lstm_anomaly_models_1" + }, + { + "objectType": "ForeignKey_PGSQL", + "name": "fk_lstm_anomaly_results_repo_1", + "fields": [ + "repo_id" + ], + "referenceSchema": "augur_data", + "referenceTable": "repo", + "referenceFields": [ + "repo_id" + ], + "onDelete": "NO ACTION", + "onUpdate": "NO ACTION", + "comment": "", + "isMatchFull": false, + "isDeferrable": false, + "isDeferred": false, + "sourceCardinality": "ZeroOrManyRelationship", + "targetCardinality": "ZeroOrOneRelationship", + "oldName": "fk_lstm_anomaly_results_repo_1" + } + ], + "uniques": [], + "checks": [], + "excludes": [], + "triggers": [], + "partitionKeys": [], + "partitions": [] + }, + { + "objectType": "TableNormal_PGSQL", + "name": "message", + "comment": "", + "tablespace": "", + "isUnlogged": false, + "owner": "augur", + "inheritFromTables": [], + "hasOIDs": false, + "fillFactor": -1, + "oldName": "message", + "oid": 15486646, + "rows": 0, + "isInheritTables": false, + "cluster": "", + "ACL": "", + "isPartition": false, + "partitioningStrategy": "None", + "partitionOfSchema": "", + "partitionOfTable": "", + "partitionListValues": [], + "partitionRangeFromValues": [], + "partitionRangeToValues": [], + "foreignServer": "", + "foreignOptionDisplay": "", + "fields": [ + { + "objectType": "TableField_PGSQL", + "name": "msg_id", + "type": "int8", + "length": 64, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": false, + "defaultType": "Others", + "defaultValue": "nextval('augur_data.message_msg_id_seq'::regclass)", + "comment": "", + "oldName": "msg_id", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 1, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "rgls_id", + "type": "int8", + "length": 64, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "rgls_id", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 2, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "msg_text", + "type": "text", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "msg_text", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 3, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "msg_timestamp", + "type": "timestamp", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "msg_timestamp", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 4, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "msg_sender_email", + "type": "varchar", + "length": 255, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "msg_sender_email", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 5, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "msg_header", + "type": "varchar", + "length": 4000, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "msg_header", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 6, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "pltfrm_id", + "type": "int8", + "length": 64, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": false, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "pltfrm_id", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 7, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "tool_source", + "type": "varchar", + "length": 255, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "tool_source", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 8, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "tool_version", + "type": "varchar", + "length": 255, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "tool_version", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 9, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "data_source", + "type": "varchar", + "length": 255, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "data_source", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 10, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "data_collection_date", + "type": "timestamp", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "Others", + "defaultValue": "CURRENT_TIMESTAMP", + "comment": "", + "oldName": "data_collection_date", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 11, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "cntrb_id", + "type": "int8", + "length": 64, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "Not populated for mailing lists. Populated for GitHub issues. ", + "oldName": "cntrb_id", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 12, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "platform_msg_id", + "type": "int8", + "length": 64, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "platform_msg_id", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 13, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "platform_node_id", + "type": "varchar", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "platform_node_id", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 14, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + } + ], + "indexes": [ + { + "objectType": "Index_PGSQL", + "name": "messagegrouper", + "comment": "", + "isClustered": false, + "isConcurrently": false, + "isUnique": true, + "fastUpdate": "", + "buffering": "", + "fillFactor": -1, + "method": "BTree", + "tableSpaceName": "", + "constraint": "", + "oldName": "messagegrouper", + "oid": 15486975, + "owner": "augur", + "brinPagesPerRange": -1, + "ginPendingListLimit": -1, + "tableName": "message", + "size": "8", + "fields": [ + { + "objectType": "IndexField_PGSQL", + "name": "msg_id", + "collation": "", + "opClass": "int8_ops", + "opClassSchema": "pg_catalog", + "order": "ASC", + "nullSort": "NULLS LAST", + "oldName": "msg_id", + "collationSchema": "" + }, + { + "objectType": "IndexField_PGSQL", + "name": "rgls_id", + "collation": "", + "opClass": "int8_ops", + "opClassSchema": "pg_catalog", + "order": "ASC", + "nullSort": "NULLS LAST", + "oldName": "rgls_id", + "collationSchema": "" + } + ] + }, + { + "objectType": "Index_PGSQL", + "name": "msg-cntrb-id-idx", + "comment": "", + "isClustered": false, + "isConcurrently": false, + "isUnique": false, + "fastUpdate": "", + "buffering": "", + "fillFactor": -1, + "method": "BTree", + "tableSpaceName": "", + "constraint": "", + "oldName": "msg-cntrb-id-idx", + "oid": 15488145, + "owner": "augur", + "brinPagesPerRange": -1, + "ginPendingListLimit": -1, + "tableName": "message", + "size": "8", + "fields": [ + { + "objectType": "IndexField_PGSQL", + "name": "cntrb_id", + "collation": "", + "opClass": "int8_ops", + "opClassSchema": "pg_catalog", + "order": "ASC", + "nullSort": "NULLS LAST", + "oldName": "cntrb_id", + "collationSchema": "" + } + ] + }, + { + "objectType": "Index_PGSQL", + "name": "platformgrouper", + "comment": "", + "isClustered": false, + "isConcurrently": false, + "isUnique": false, + "fastUpdate": "", + "buffering": "", + "fillFactor": -1, + "method": "BTree", + "tableSpaceName": "", + "constraint": "", + "oldName": "platformgrouper", + "oid": 15486976, + "owner": "augur", + "brinPagesPerRange": -1, + "ginPendingListLimit": -1, + "tableName": "message", + "size": "8", + "fields": [ + { + "objectType": "IndexField_PGSQL", + "name": "msg_id", + "collation": "", + "opClass": "int8_ops", + "opClassSchema": "pg_catalog", + "order": "ASC", + "nullSort": "NULLS LAST", + "oldName": "msg_id", + "collationSchema": "" + }, + { + "objectType": "IndexField_PGSQL", + "name": "pltfrm_id", + "collation": "", + "opClass": "int8_ops", + "opClassSchema": "pg_catalog", + "order": "ASC", + "nullSort": "NULLS LAST", + "oldName": "pltfrm_id", + "collationSchema": "" + } + ] + } + ], + "rules": [], + "primaryKey": { + "objectType": "PrimaryKey_PGSQL", + "name": "message_pkey", + "fields": [ + "msg_id" + ], + "fillFactor": -1, + "indexTablespace": "", + "comment": "", + "isDeferrable": false, + "isDeferred": false, + "oldName": "message_pkey" + }, + "foreignKeys": [ + { + "objectType": "ForeignKey_PGSQL", + "name": "fk_message_contributors_1", + "fields": [ + "cntrb_id" + ], + "referenceSchema": "augur_data", + "referenceTable": "contributors", + "referenceFields": [ + "cntrb_id" + ], + "onDelete": "CASCADE", + "onUpdate": "CASCADE", + "comment": "", + "isMatchFull": false, + "isDeferrable": false, + "isDeferred": false, + "sourceCardinality": "ZeroOrManyRelationship", + "targetCardinality": "ZeroOrOneRelationship", + "oldName": "fk_message_contributors_1" + }, + { + "objectType": "ForeignKey_PGSQL", + "name": "fk_message_platform_1", + "fields": [ + "pltfrm_id" + ], + "referenceSchema": "augur_data", + "referenceTable": "platform", + "referenceFields": [ + "pltfrm_id" + ], + "onDelete": "CASCADE", + "onUpdate": "CASCADE", + "comment": "", + "isMatchFull": false, + "isDeferrable": false, + "isDeferred": false, + "sourceCardinality": "ZeroOrManyRelationship", + "targetCardinality": "OneAndOnlyOneRelationship", + "oldName": "fk_message_platform_1" + }, + { + "objectType": "ForeignKey_PGSQL", + "name": "fk_message_repo_groups_list_serve_1", + "fields": [ + "rgls_id" + ], + "referenceSchema": "augur_data", + "referenceTable": "repo_groups_list_serve", + "referenceFields": [ + "rgls_id" + ], + "onDelete": "CASCADE", + "onUpdate": "CASCADE", + "comment": "", + "isMatchFull": false, + "isDeferrable": false, + "isDeferred": false, + "sourceCardinality": "ZeroOrManyRelationship", + "targetCardinality": "ZeroOrOneRelationship", + "oldName": "fk_message_repo_groups_list_serve_1" + } + ], + "uniques": [ + { + "objectType": "Unique_PGSQL", + "name": "REPOGROUPLISTER", + "fields": [ + "msg_id", + "rgls_id" + ], + "fillFactor": -1, + "indexTablespace": "", + "comment": "", + "isDeferrable": false, + "isDeferred": false, + "oldName": "REPOGROUPLISTER" + }, + { + "objectType": "Unique_PGSQL", + "name": "platformer", + "fields": [ + "msg_id", + "pltfrm_id" + ], + "fillFactor": -1, + "indexTablespace": "", + "comment": "", + "isDeferrable": false, + "isDeferred": false, + "oldName": "platformer" + } + ], + "checks": [], + "excludes": [], + "triggers": [], + "partitionKeys": [], + "partitions": [] + }, + { + "objectType": "TableNormal_PGSQL", + "name": "message_analysis", + "comment": "", + "tablespace": "", + "isUnlogged": false, + "owner": "augur", + "inheritFromTables": [], + "hasOIDs": false, + "fillFactor": -1, + "oldName": "message_analysis", + "oid": 15488001, + "rows": 0, + "isInheritTables": false, + "cluster": "", + "ACL": "", + "isPartition": false, + "partitioningStrategy": "None", + "partitionOfSchema": "", + "partitionOfTable": "", + "partitionListValues": [], + "partitionRangeFromValues": [], + "partitionRangeToValues": [], + "foreignServer": "", + "foreignOptionDisplay": "", + "fields": [ + { + "objectType": "TableField_PGSQL", + "name": "msg_analysis_id", + "type": "int8", + "length": 64, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": false, + "defaultType": "Others", + "defaultValue": "nextval('augur_data.message_analysis_msg_analysis_id_seq'::regclass)", + "comment": "", + "oldName": "msg_analysis_id", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 1, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "msg_id", + "type": "int8", + "length": 64, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "msg_id", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 2, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "worker_run_id", + "type": "int8", + "length": 64, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "This column is used to indicate analyses run by a worker during the same execution period, and is useful for grouping, and time series analysis. ", + "oldName": "worker_run_id", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 3, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "sentiment_score", + "type": "float8", + "length": 53, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "A sentiment analysis score. Zero is neutral, negative numbers are negative sentiment, and positive numbers are positive sentiment. ", + "oldName": "sentiment_score", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 4, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "reconstruction_error", + "type": "float8", + "length": 53, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "Each message is converted to a 250 dimensin doc2vec vector, so the reconstruction error is the difference between what the predicted vector and the actual vector.", + "oldName": "reconstruction_error", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 5, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "novelty_flag", + "type": "bool", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "This is an analysis of the degree to which the message is novel when compared to other messages in a repository. For example when bots are producing numerous identical messages, the novelty score is low. It would also be a low novelty score when several people are making the same coment. ", + "oldName": "novelty_flag", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 6, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "feedback_flag", + "type": "bool", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "This exists to provide the user with an opportunity provide feedback on the resulting the sentiment scores. ", + "oldName": "feedback_flag", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 7, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "tool_source", + "type": "varchar", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "tool_source", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 8, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "tool_version", + "type": "varchar", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "tool_version", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 9, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "data_source", + "type": "varchar", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "data_source", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 10, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "data_collection_date", + "type": "timestamp", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "Others", + "defaultValue": "CURRENT_TIMESTAMP", + "comment": "", + "oldName": "data_collection_date", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 11, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + } + ], + "indexes": [], + "rules": [], + "primaryKey": { + "objectType": "PrimaryKey_PGSQL", + "name": "message_analysis_pkey", + "fields": [ + "msg_analysis_id" + ], + "fillFactor": -1, + "indexTablespace": "", + "comment": "", + "isDeferrable": false, + "isDeferred": false, + "oldName": "message_analysis_pkey" + }, + "foreignKeys": [ + { + "objectType": "ForeignKey_PGSQL", + "name": "fk_message_analysis_message_1", + "fields": [ + "msg_id" + ], + "referenceSchema": "augur_data", + "referenceTable": "message", + "referenceFields": [ + "msg_id" + ], + "onDelete": "NO ACTION", + "onUpdate": "NO ACTION", + "comment": "", + "isMatchFull": false, + "isDeferrable": false, + "isDeferred": false, + "sourceCardinality": "ZeroOrManyRelationship", + "targetCardinality": "ZeroOrOneRelationship", + "oldName": "fk_message_analysis_message_1" + } + ], + "uniques": [], + "checks": [], + "excludes": [], + "triggers": [], + "partitionKeys": [], + "partitions": [] + }, + { + "objectType": "TableNormal_PGSQL", + "name": "message_analysis_summary", + "comment": "In a relationally perfect world, we would have a table called “message_analysis_run” the incremented the “worker_run_id” for both message_analysis and message_analysis_summary. For now, we decided this was overkill. ", + "tablespace": "", + "isUnlogged": false, + "owner": "augur", + "inheritFromTables": [], + "hasOIDs": false, + "fillFactor": -1, + "oldName": "message_analysis_summary", + "oid": 15488013, + "rows": 0, + "isInheritTables": false, + "cluster": "", + "ACL": "", + "isPartition": false, + "partitioningStrategy": "None", + "partitionOfSchema": "", + "partitionOfTable": "", + "partitionListValues": [], + "partitionRangeFromValues": [], + "partitionRangeToValues": [], + "foreignServer": "", + "foreignOptionDisplay": "", + "fields": [ + { + "objectType": "TableField_PGSQL", + "name": "msg_summary_id", + "type": "int8", + "length": 64, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": false, + "defaultType": "Others", + "defaultValue": "nextval('augur_data.message_analysis_summary_msg_summary_id_seq'::regclass)", + "comment": "", + "oldName": "msg_summary_id", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 1, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "repo_id", + "type": "int8", + "length": 64, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "repo_id", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 2, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "worker_run_id", + "type": "int8", + "length": 64, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "This value should reflect the worker_run_id for the messages summarized in the table. There is not a relation between these two tables for that purpose because its not *really*, relationaly a concept unless we create a third table for \"worker_run_id\", which we determined was unnecessarily complex. ", + "oldName": "worker_run_id", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 3, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "positive_ratio", + "type": "float8", + "length": 53, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "positive_ratio", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 4, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "negative_ratio", + "type": "float8", + "length": 53, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "negative_ratio", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 5, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "novel_count", + "type": "int8", + "length": 64, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "The number of messages identified as novel during the analyzed period", + "oldName": "novel_count", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 6, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "period", + "type": "timestamp", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "The whole timeline is divided into periods based on the definition of time period for analysis, which is user specified. Timestamp of the first period to look at, until the end of messages at the data of execution. ", + "oldName": "period", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 7, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "tool_source", + "type": "varchar", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "tool_source", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 8, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "tool_version", + "type": "varchar", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "tool_version", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 9, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "data_source", + "type": "varchar", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "data_source", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 10, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "data_collection_date", + "type": "timestamp", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "Others", + "defaultValue": "CURRENT_TIMESTAMP", + "comment": "", + "oldName": "data_collection_date", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 11, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + } + ], + "indexes": [], + "rules": [], + "primaryKey": { + "objectType": "PrimaryKey_PGSQL", + "name": "message_analysis_summary_pkey", + "fields": [ + "msg_summary_id" + ], + "fillFactor": -1, + "indexTablespace": "", + "comment": "", + "isDeferrable": false, + "isDeferred": false, + "oldName": "message_analysis_summary_pkey" + }, + "foreignKeys": [ + { + "objectType": "ForeignKey_PGSQL", + "name": "fk_message_analysis_summary_repo_1", + "fields": [ + "repo_id" + ], + "referenceSchema": "augur_data", + "referenceTable": "repo", + "referenceFields": [ + "repo_id" + ], + "onDelete": "NO ACTION", + "onUpdate": "NO ACTION", + "comment": "", + "isMatchFull": false, + "isDeferrable": false, + "isDeferred": false, + "sourceCardinality": "ZeroOrManyRelationship", + "targetCardinality": "ZeroOrOneRelationship", + "oldName": "fk_message_analysis_summary_repo_1" + } + ], + "uniques": [], + "checks": [], + "excludes": [], + "triggers": [], + "partitionKeys": [], + "partitions": [] + }, + { + "objectType": "TableNormal_PGSQL", + "name": "message_sentiment", + "comment": "", + "tablespace": "", + "isUnlogged": false, + "owner": "augur", + "inheritFromTables": [], + "hasOIDs": false, + "fillFactor": -1, + "oldName": "message_sentiment", + "oid": 15488117, + "rows": 0, + "isInheritTables": false, + "cluster": "", + "ACL": "", + "isPartition": false, + "partitioningStrategy": "None", + "partitionOfSchema": "", + "partitionOfTable": "", + "partitionListValues": [], + "partitionRangeFromValues": [], + "partitionRangeToValues": [], + "foreignServer": "", + "foreignOptionDisplay": "", + "fields": [ + { + "objectType": "TableField_PGSQL", + "name": "msg_analysis_id", + "type": "int8", + "length": 64, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": false, + "defaultType": "Others", + "defaultValue": "nextval('augur_data.message_sentiment_msg_analysis_id_seq'::regclass)", + "comment": "", + "oldName": "msg_analysis_id", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 1, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "msg_id", + "type": "int8", + "length": 64, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "msg_id", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 2, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "worker_run_id", + "type": "int8", + "length": 64, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "This column is used to indicate analyses run by a worker during the same execution period, and is useful for grouping, and time series analysis. ", + "oldName": "worker_run_id", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 3, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "sentiment_score", + "type": "float8", + "length": 53, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "A sentiment analysis score. Zero is neutral, negative numbers are negative sentiment, and positive numbers are positive sentiment. ", + "oldName": "sentiment_score", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 4, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "reconstruction_error", + "type": "float8", + "length": 53, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "Each message is converted to a 250 dimensin doc2vec vector, so the reconstruction error is the difference between what the predicted vector and the actual vector.", + "oldName": "reconstruction_error", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 5, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "novelty_flag", + "type": "bool", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "This is an analysis of the degree to which the message is novel when compared to other messages in a repository. For example when bots are producing numerous identical messages, the novelty score is low. It would also be a low novelty score when several people are making the same coment. ", + "oldName": "novelty_flag", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 6, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "feedback_flag", + "type": "bool", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "This exists to provide the user with an opportunity provide feedback on the resulting the sentiment scores. ", + "oldName": "feedback_flag", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 7, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "tool_source", + "type": "varchar", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "tool_source", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 8, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "tool_version", + "type": "varchar", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "tool_version", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 9, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "data_source", + "type": "varchar", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "data_source", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 10, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "data_collection_date", + "type": "timestamp", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "Others", + "defaultValue": "CURRENT_TIMESTAMP", + "comment": "", + "oldName": "data_collection_date", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 11, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + } + ], + "indexes": [], + "rules": [], + "primaryKey": { + "objectType": "PrimaryKey_PGSQL", + "name": "message_sentiment_pkey", + "fields": [ + "msg_analysis_id" + ], + "fillFactor": -1, + "indexTablespace": "", + "comment": "", + "isDeferrable": false, + "isDeferred": false, + "oldName": "message_sentiment_pkey" + }, + "foreignKeys": [ + { + "objectType": "ForeignKey_PGSQL", + "name": "fk_message_sentiment_message_1", + "fields": [ + "msg_id" + ], + "referenceSchema": "augur_data", + "referenceTable": "message", + "referenceFields": [ + "msg_id" + ], + "onDelete": "NO ACTION", + "onUpdate": "NO ACTION", + "comment": "", + "isMatchFull": false, + "isDeferrable": false, + "isDeferred": false, + "sourceCardinality": "ZeroOrManyRelationship", + "targetCardinality": "ZeroOrOneRelationship", + "oldName": "fk_message_sentiment_message_1" + } + ], + "uniques": [], + "checks": [], + "excludes": [], + "triggers": [], + "partitionKeys": [], + "partitions": [] + }, + { + "objectType": "TableNormal_PGSQL", + "name": "message_sentiment_summary", + "comment": "In a relationally perfect world, we would have a table called “message_sentiment_run” the incremented the “worker_run_id” for both message_sentiment and message_sentiment_summary. For now, we decided this was overkill. ", + "tablespace": "", + "isUnlogged": false, + "owner": "augur", + "inheritFromTables": [], + "hasOIDs": false, + "fillFactor": -1, + "oldName": "message_sentiment_summary", + "oid": 15488127, + "rows": 0, + "isInheritTables": false, + "cluster": "", + "ACL": "", + "isPartition": false, + "partitioningStrategy": "None", + "partitionOfSchema": "", + "partitionOfTable": "", + "partitionListValues": [], + "partitionRangeFromValues": [], + "partitionRangeToValues": [], + "foreignServer": "", + "foreignOptionDisplay": "", + "fields": [ + { + "objectType": "TableField_PGSQL", + "name": "msg_summary_id", + "type": "int8", + "length": 64, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": false, + "defaultType": "Others", + "defaultValue": "nextval('augur_data.message_sentiment_summary_msg_summary_id_seq'::regclass)", + "comment": "", + "oldName": "msg_summary_id", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 1, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "repo_id", + "type": "int8", + "length": 64, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "repo_id", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 2, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "worker_run_id", + "type": "int8", + "length": 64, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "This value should reflect the worker_run_id for the messages summarized in the table. There is not a relation between these two tables for that purpose because its not *really*, relationaly a concept unless we create a third table for \"worker_run_id\", which we determined was unnecessarily complex. ", + "oldName": "worker_run_id", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 3, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "positive_ratio", + "type": "float8", + "length": 53, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "positive_ratio", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 4, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "negative_ratio", + "type": "float8", + "length": 53, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "negative_ratio", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 5, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "novel_count", + "type": "int8", + "length": 64, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "The number of messages identified as novel during the analyzed period", + "oldName": "novel_count", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 6, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "period", + "type": "timestamp", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "The whole timeline is divided into periods based on the definition of time period for analysis, which is user specified. Timestamp of the first period to look at, until the end of messages at the data of execution. ", + "oldName": "period", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 7, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "tool_source", + "type": "varchar", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "tool_source", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 8, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "tool_version", + "type": "varchar", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "tool_version", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 9, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "data_source", + "type": "varchar", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "data_source", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 10, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "data_collection_date", + "type": "timestamp", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "Others", + "defaultValue": "CURRENT_TIMESTAMP", + "comment": "", + "oldName": "data_collection_date", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 11, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + } + ], + "indexes": [], + "rules": [], + "primaryKey": { + "objectType": "PrimaryKey_PGSQL", + "name": "message_sentiment_summary_pkey", + "fields": [ + "msg_summary_id" + ], + "fillFactor": -1, + "indexTablespace": "", + "comment": "", + "isDeferrable": false, + "isDeferred": false, + "oldName": "message_sentiment_summary_pkey" + }, + "foreignKeys": [ + { + "objectType": "ForeignKey_PGSQL", + "name": "fk_message_sentiment_summary_repo_1", + "fields": [ + "repo_id" + ], + "referenceSchema": "augur_data", + "referenceTable": "repo", + "referenceFields": [ + "repo_id" + ], + "onDelete": "NO ACTION", + "onUpdate": "NO ACTION", + "comment": "", + "isMatchFull": false, + "isDeferrable": false, + "isDeferred": false, + "sourceCardinality": "ZeroOrManyRelationship", + "targetCardinality": "ZeroOrOneRelationship", + "oldName": "fk_message_sentiment_summary_repo_1" + } + ], + "uniques": [], + "checks": [], + "excludes": [], + "triggers": [], + "partitionKeys": [], + "partitions": [] + }, + { + "objectType": "TableNormal_PGSQL", + "name": "platform", + "comment": "", + "tablespace": "", + "isUnlogged": false, + "owner": "augur", + "inheritFromTables": [], + "hasOIDs": false, + "fillFactor": -1, + "oldName": "platform", + "oid": 15486653, + "rows": 2, + "isInheritTables": false, + "cluster": "", + "ACL": "", + "isPartition": false, + "partitioningStrategy": "None", + "partitionOfSchema": "", + "partitionOfTable": "", + "partitionListValues": [], + "partitionRangeFromValues": [], + "partitionRangeToValues": [], + "foreignServer": "", + "foreignOptionDisplay": "", + "fields": [ + { + "objectType": "TableField_PGSQL", + "name": "pltfrm_id", + "type": "int8", + "length": 64, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": false, + "defaultType": "Others", + "defaultValue": "nextval('augur_data.platform_pltfrm_id_seq'::regclass)", + "comment": "", + "oldName": "pltfrm_id", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 1, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "pltfrm_name", + "type": "varchar", + "length": 255, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "pltfrm_name", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 2, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "pltfrm_version", + "type": "varchar", + "length": 255, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "pltfrm_version", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 3, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "pltfrm_release_date", + "type": "date", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "pltfrm_release_date", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 4, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "tool_source", + "type": "varchar", + "length": 255, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "tool_source", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 5, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "tool_version", + "type": "varchar", + "length": 255, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "tool_version", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 6, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "data_source", + "type": "varchar", + "length": 255, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "data_source", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 7, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "data_collection_date", + "type": "timestamp", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "data_collection_date", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 8, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + } + ], + "indexes": [ + { + "objectType": "Index_PGSQL", + "name": "plat", + "comment": "", + "isClustered": false, + "isConcurrently": false, + "isUnique": true, + "fastUpdate": "", + "buffering": "", + "fillFactor": -1, + "method": "BTree", + "tableSpaceName": "", + "constraint": "", + "oldName": "plat", + "oid": 15486983, + "owner": "augur", + "brinPagesPerRange": -1, + "ginPendingListLimit": -1, + "tableName": "platform", + "size": "16", + "fields": [ + { + "objectType": "IndexField_PGSQL", + "name": "pltfrm_id", + "collation": "", + "opClass": "int8_ops", + "opClassSchema": "pg_catalog", + "order": "ASC", + "nullSort": "NULLS LAST", + "oldName": "pltfrm_id", + "collationSchema": "" + } + ] + } + ], + "rules": [], + "primaryKey": { + "objectType": "PrimaryKey_PGSQL", + "name": "theplat", + "fields": [ + "pltfrm_id" + ], + "fillFactor": -1, + "indexTablespace": "", + "comment": "", + "isDeferrable": false, + "isDeferred": false, + "oldName": "theplat" + }, + "foreignKeys": [], + "uniques": [], + "checks": [], + "excludes": [], + "triggers": [], + "partitionKeys": [], + "partitions": [] + }, + { + "objectType": "TableNormal_PGSQL", + "name": "pull_request_analysis", + "comment": "", + "tablespace": "", + "isUnlogged": false, + "owner": "augur", + "inheritFromTables": [], + "hasOIDs": false, + "fillFactor": -1, + "oldName": "pull_request_analysis", + "oid": 15488239, + "rows": 0, + "isInheritTables": false, + "cluster": "", + "ACL": "", + "isPartition": false, + "partitioningStrategy": "None", + "partitionOfSchema": "", + "partitionOfTable": "", + "partitionListValues": [], + "partitionRangeFromValues": [], + "partitionRangeToValues": [], + "foreignServer": "", + "foreignOptionDisplay": "", + "fields": [ + { + "objectType": "TableField_PGSQL", + "name": "pull_request_analysis_id", + "type": "int8", + "length": 64, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": false, + "defaultType": "Others", + "defaultValue": "nextval('augur_data.pull_request_analysis_pull_request_analysis_id_seq'::regclass)", + "comment": "", + "oldName": "pull_request_analysis_id", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 1, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "pull_request_id", + "type": "int8", + "length": 64, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "It would be better if the pull request worker is run first to fetch the latest PRs before analyzing", + "oldName": "pull_request_id", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 2, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "merge_probability", + "type": "numeric", + "length": 256, + "decimals": 250, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "Indicates the probability of the PR being merged", + "oldName": "merge_probability", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 3, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "mechanism", + "type": "varchar", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "the ML model used for prediction (It is XGBoost Classifier at present)", + "oldName": "mechanism", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 4, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "tool_source", + "type": "varchar", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "tool_source", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 5, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "tool_version", + "type": "varchar", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "tool_version", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 6, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "data_source", + "type": "varchar", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "data_source", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 7, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "data_collection_date", + "type": "timestamptz", + "length": 6, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": false, + "defaultType": "Others", + "defaultValue": "CURRENT_TIMESTAMP", + "comment": "", + "oldName": "data_collection_date", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 8, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + } + ], + "indexes": [ + { + "objectType": "Index_PGSQL", + "name": "pr_anal_idx", + "comment": "", + "isClustered": false, + "isConcurrently": false, + "isUnique": false, + "fastUpdate": "", + "buffering": "", + "fillFactor": -1, + "method": "BTree", + "tableSpaceName": "", + "constraint": "", + "oldName": "pr_anal_idx", + "oid": 15488255, + "owner": "augur", + "brinPagesPerRange": -1, + "ginPendingListLimit": -1, + "tableName": "pull_request_analysis", + "size": "8", + "fields": [ + { + "objectType": "IndexField_PGSQL", + "name": "pull_request_id", + "collation": "", + "opClass": "int8_ops", + "opClassSchema": "pg_catalog", + "order": "ASC", + "nullSort": "NULLS LAST", + "oldName": "pull_request_id", + "collationSchema": "" + } + ] + }, + { + "objectType": "Index_PGSQL", + "name": "probability_idx", + "comment": "", + "isClustered": false, + "isConcurrently": false, + "isUnique": false, + "fastUpdate": "", + "buffering": "", + "fillFactor": -1, + "method": "BTree", + "tableSpaceName": "", + "constraint": "", + "oldName": "probability_idx", + "oid": 15488452, + "owner": "augur", + "brinPagesPerRange": -1, + "ginPendingListLimit": -1, + "tableName": "pull_request_analysis", + "size": "8", + "fields": [ + { + "objectType": "IndexField_PGSQL", + "name": "merge_probability", + "collation": "", + "opClass": "numeric_ops", + "opClassSchema": "pg_catalog", + "order": "DESC", + "nullSort": "NULLS LAST", + "oldName": "merge_probability", + "collationSchema": "" + } + ] + } + ], + "rules": [], + "primaryKey": { + "objectType": "PrimaryKey_PGSQL", + "name": "pull_request_analysis_pkey", + "fields": [ + "pull_request_analysis_id" + ], + "fillFactor": -1, + "indexTablespace": "", + "comment": "", + "isDeferrable": false, + "isDeferred": false, + "oldName": "pull_request_analysis_pkey" + }, + "foreignKeys": [ + { + "objectType": "ForeignKey_PGSQL", + "name": "fk_pull_request_analysis_pull_requests_1", + "fields": [ + "pull_request_id" + ], + "referenceSchema": "augur_data", + "referenceTable": "pull_requests", + "referenceFields": [ + "pull_request_id" + ], + "onDelete": "CASCADE", + "onUpdate": "CASCADE", + "comment": "", + "isMatchFull": false, + "isDeferrable": false, + "isDeferred": false, + "sourceCardinality": "ZeroOrManyRelationship", + "targetCardinality": "ZeroOrOneRelationship", + "oldName": "fk_pull_request_analysis_pull_requests_1" + } + ], + "uniques": [], + "checks": [], + "excludes": [], + "triggers": [], + "partitionKeys": [], + "partitions": [] + }, + { + "objectType": "TableNormal_PGSQL", + "name": "pull_request_assignees", + "comment": "", + "tablespace": "", + "isUnlogged": false, + "owner": "augur", + "inheritFromTables": [], + "hasOIDs": false, + "fillFactor": -1, + "oldName": "pull_request_assignees", + "oid": 15486660, + "rows": 0, + "isInheritTables": false, + "cluster": "", + "ACL": "", + "isPartition": false, + "partitioningStrategy": "None", + "partitionOfSchema": "", + "partitionOfTable": "", + "partitionListValues": [], + "partitionRangeFromValues": [], + "partitionRangeToValues": [], + "foreignServer": "", + "foreignOptionDisplay": "", + "fields": [ + { + "objectType": "TableField_PGSQL", + "name": "pr_assignee_map_id", + "type": "int8", + "length": 64, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": false, + "defaultType": "Others", + "defaultValue": "nextval('augur_data.pull_request_assignees_pr_assignee_map_id_seq'::regclass)", + "comment": "", + "oldName": "pr_assignee_map_id", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 1, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "pull_request_id", + "type": "int8", + "length": 64, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "pull_request_id", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 2, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "contrib_id", + "type": "int8", + "length": 64, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "contrib_id", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 3, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "tool_source", + "type": "varchar", + "length": 255, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "tool_source", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 4, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "tool_version", + "type": "varchar", + "length": 255, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "tool_version", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 5, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "data_source", + "type": "varchar", + "length": 255, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "data_source", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 6, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "data_collection_date", + "type": "timestamp", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "Others", + "defaultValue": "CURRENT_TIMESTAMP", + "comment": "", + "oldName": "data_collection_date", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 7, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "pr_assignee_src_id", + "type": "int8", + "length": 64, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "pr_assignee_src_id", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 8, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + } + ], + "indexes": [ + { + "objectType": "Index_PGSQL", + "name": "pr_meta_cntrb-idx", + "comment": "", + "isClustered": false, + "isConcurrently": false, + "isUnique": false, + "fastUpdate": "", + "buffering": "", + "fillFactor": -1, + "method": "BTree", + "tableSpaceName": "", + "constraint": "", + "oldName": "pr_meta_cntrb-idx", + "oid": 15488147, + "owner": "augur", + "brinPagesPerRange": -1, + "ginPendingListLimit": -1, + "tableName": "pull_request_assignees", + "size": "8", + "fields": [ + { + "objectType": "IndexField_PGSQL", + "name": "contrib_id", + "collation": "", + "opClass": "int8_ops", + "opClassSchema": "pg_catalog", + "order": "ASC", + "nullSort": "NULLS LAST", + "oldName": "contrib_id", + "collationSchema": "" + } + ] + } + ], + "rules": [], + "primaryKey": { + "objectType": "PrimaryKey_PGSQL", + "name": "pull_request_assignees_pkey", + "fields": [ + "pr_assignee_map_id" + ], + "fillFactor": -1, + "indexTablespace": "", + "comment": "", + "isDeferrable": false, + "isDeferred": false, + "oldName": "pull_request_assignees_pkey" + }, + "foreignKeys": [ + { + "objectType": "ForeignKey_PGSQL", + "name": "fk_pull_request_assignees_contributors_1", + "fields": [ + "contrib_id" + ], + "referenceSchema": "augur_data", + "referenceTable": "contributors", + "referenceFields": [ + "cntrb_id" + ], + "onDelete": "NO ACTION", + "onUpdate": "NO ACTION", + "comment": "", + "isMatchFull": false, + "isDeferrable": false, + "isDeferred": false, + "sourceCardinality": "ZeroOrManyRelationship", + "targetCardinality": "ZeroOrOneRelationship", + "oldName": "fk_pull_request_assignees_contributors_1" + }, + { + "objectType": "ForeignKey_PGSQL", + "name": "fk_pull_request_assignees_pull_requests_1", + "fields": [ + "pull_request_id" + ], + "referenceSchema": "augur_data", + "referenceTable": "pull_requests", + "referenceFields": [ + "pull_request_id" + ], + "onDelete": "NO ACTION", + "onUpdate": "NO ACTION", + "comment": "", + "isMatchFull": false, + "isDeferrable": false, + "isDeferred": false, + "sourceCardinality": "ZeroOrManyRelationship", + "targetCardinality": "ZeroOrOneRelationship", + "oldName": "fk_pull_request_assignees_pull_requests_1" + } + ], + "uniques": [], + "checks": [], + "excludes": [], + "triggers": [], + "partitionKeys": [], + "partitions": [] + }, + { + "objectType": "TableNormal_PGSQL", + "name": "pull_request_commits", + "comment": "Pull request commits are an enumeration of each commit associated with a pull request. \nNot all pull requests are from a branch or fork into master. \nThe commits table intends to count only commits that end up in the master branch (i.e., part of the deployed code base for a project).\nTherefore, there will be commit “SHA”’s in this table that are no associated with a commit SHA in the commits table. \nIn cases where the PR is to the master branch of a project, you will find a match. In cases where the PR does not involve the master branch, you will not find a corresponding commit SHA in the commits table. This is expected. ", + "tablespace": "", + "isUnlogged": false, + "owner": "augur", + "inheritFromTables": [], + "hasOIDs": false, + "fillFactor": -1, + "oldName": "pull_request_commits", + "oid": 15487903, + "rows": 23068, + "isInheritTables": false, + "cluster": "", + "ACL": "", + "isPartition": false, + "partitioningStrategy": "None", + "partitionOfSchema": "", + "partitionOfTable": "", + "partitionListValues": [], + "partitionRangeFromValues": [], + "partitionRangeToValues": [], + "foreignServer": "", + "foreignOptionDisplay": "", + "fields": [ + { + "objectType": "TableField_PGSQL", + "name": "pr_cmt_id", + "type": "int8", + "length": 64, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": false, + "defaultType": "Others", + "defaultValue": "nextval('augur_data.pull_request_commits_pr_cmt_id_seq'::regclass)", + "comment": "", + "oldName": "pr_cmt_id", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 1, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "pull_request_id", + "type": "int8", + "length": 64, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "pull_request_id", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 2, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "pr_cmt_sha", + "type": "varchar", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "This is the commit SHA for a pull request commit. If the PR is not to the master branch of the main repository (or, in rare cases, from it), then you will NOT find a corresponding commit SHA in the commit table. (see table comment for further explanation). ", + "oldName": "pr_cmt_sha", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 3, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "pr_cmt_node_id", + "type": "varchar", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "pr_cmt_node_id", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 4, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "pr_cmt_message", + "type": "varchar", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "pr_cmt_message", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 5, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "pr_cmt_comments_url", + "type": "varbit", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "pr_cmt_comments_url", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 6, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "tool_source", + "type": "varchar", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "tool_source", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 7, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "tool_version", + "type": "varchar", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "tool_version", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 8, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "data_source", + "type": "varchar", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "data_source", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 9, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "data_collection_date", + "type": "timestamp", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "Others", + "defaultValue": "CURRENT_TIMESTAMP", + "comment": "", + "oldName": "data_collection_date", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 10, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "pr_cmt_author_cntrb_id", + "type": "int8", + "length": 64, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "pr_cmt_author_cntrb_id", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 11, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "pr_cmt_timestamp", + "type": "timestamp", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "pr_cmt_timestamp", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 12, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "pr_cmt_author_email", + "type": "varchar", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "pr_cmt_author_email", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 13, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + } + ], + "indexes": [], + "rules": [], + "primaryKey": { + "objectType": "PrimaryKey_PGSQL", + "name": "pull_request_commits_pkey", + "fields": [ + "pr_cmt_id" + ], + "fillFactor": -1, + "indexTablespace": "", + "comment": "", + "isDeferrable": false, + "isDeferred": false, + "oldName": "pull_request_commits_pkey" + }, + "foreignKeys": [ + { + "objectType": "ForeignKey_PGSQL", + "name": "fk_pr_commit_cntrb_id", + "fields": [ + "pr_cmt_author_cntrb_id" + ], + "referenceSchema": "augur_data", + "referenceTable": "contributors", + "referenceFields": [ + "cntrb_id" + ], + "onDelete": "CASCADE", + "onUpdate": "CASCADE", + "comment": "", + "isMatchFull": false, + "isDeferrable": false, + "isDeferred": false, + "sourceCardinality": "ZeroOrManyRelationship", + "targetCardinality": "ZeroOrOneRelationship", + "oldName": "fk_pr_commit_cntrb_id" + }, + { + "objectType": "ForeignKey_PGSQL", + "name": "fk_pull_request_commits_pull_requests_1", + "fields": [ + "pull_request_id" + ], + "referenceSchema": "augur_data", + "referenceTable": "pull_requests", + "referenceFields": [ + "pull_request_id" + ], + "onDelete": "CASCADE", + "onUpdate": "CASCADE", + "comment": "", + "isMatchFull": false, + "isDeferrable": false, + "isDeferred": false, + "sourceCardinality": "ZeroOrManyRelationship", + "targetCardinality": "ZeroOrOneRelationship", + "oldName": "fk_pull_request_commits_pull_requests_1" + } + ], + "uniques": [], + "checks": [], + "excludes": [], + "triggers": [], + "partitionKeys": [], + "partitions": [] + }, + { + "objectType": "TableNormal_PGSQL", + "name": "pull_request_events", + "comment": "", + "tablespace": "", + "isUnlogged": false, + "owner": "augur", + "inheritFromTables": [], + "hasOIDs": false, + "fillFactor": -1, + "oldName": "pull_request_events", + "oid": 15486668, + "rows": 0, + "isInheritTables": false, + "cluster": "", + "ACL": "", + "isPartition": false, + "partitioningStrategy": "None", + "partitionOfSchema": "", + "partitionOfTable": "", + "partitionListValues": [], + "partitionRangeFromValues": [], + "partitionRangeToValues": [], + "foreignServer": "", + "foreignOptionDisplay": "", + "fields": [ + { + "objectType": "TableField_PGSQL", + "name": "pr_event_id", + "type": "int8", + "length": 64, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": false, + "defaultType": "Others", + "defaultValue": "nextval('augur_data.pull_request_events_pr_event_id_seq'::regclass)", + "comment": "", + "oldName": "pr_event_id", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 1, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "pull_request_id", + "type": "int8", + "length": 64, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": false, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "pull_request_id", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 2, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "cntrb_id", + "type": "int8", + "length": 64, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": false, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "cntrb_id", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 3, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "action", + "type": "varchar", + "length": 255, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": false, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "action", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 4, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "action_commit_hash", + "type": "varchar", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "action_commit_hash", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 5, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "created_at", + "type": "timestamp", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": false, + "defaultType": "Others", + "defaultValue": "CURRENT_TIMESTAMP", + "comment": "", + "oldName": "created_at", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 6, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "issue_event_src_id", + "type": "int8", + "length": 64, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "This ID comes from the source. In the case of GitHub, it is the id that is the first field returned from the issue events API", + "oldName": "issue_event_src_id", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 7, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "node_id", + "type": "varchar", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "This should be renamed to issue_event_src_node_id, as its the varchar identifier in GitHub and likely common in other sources as well. However, since it was created before we came to this naming standard and workers are built around it, we have it simply named as node_id. Anywhere you see node_id in the schema, it comes from GitHubs terminology.", + "oldName": "node_id", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 8, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "node_url", + "type": "varchar", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "node_url", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 9, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": 0, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "tool_source", + "type": "varchar", + "length": 255, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "tool_source", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 10, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "tool_version", + "type": "varchar", + "length": 255, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "tool_version", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 11, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "data_source", + "type": "varchar", + "length": 255, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "data_source", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 12, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "data_collection_date", + "type": "timestamp", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "Others", + "defaultValue": "CURRENT_TIMESTAMP", + "comment": "", + "oldName": "data_collection_date", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 13, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + } + ], + "indexes": [ + { + "objectType": "Index_PGSQL", + "name": "pr_events_ibfk_1", + "comment": "", + "isClustered": false, + "isConcurrently": false, + "isUnique": false, + "fastUpdate": "", + "buffering": "", + "fillFactor": -1, + "method": "BTree", + "tableSpaceName": "", + "constraint": "", + "oldName": "pr_events_ibfk_1", + "oid": 15486988, + "owner": "augur", + "brinPagesPerRange": -1, + "ginPendingListLimit": -1, + "tableName": "pull_request_events", + "size": "8", + "fields": [ + { + "objectType": "IndexField_PGSQL", + "name": "pull_request_id", + "collation": "", + "opClass": "int8_ops", + "opClassSchema": "pg_catalog", + "order": "ASC", + "nullSort": "NULLS LAST", + "oldName": "pull_request_id", + "collationSchema": "" + } + ] + }, + { + "objectType": "Index_PGSQL", + "name": "pr_events_ibfk_2", + "comment": "", + "isClustered": false, + "isConcurrently": false, + "isUnique": false, + "fastUpdate": "", + "buffering": "", + "fillFactor": -1, + "method": "BTree", + "tableSpaceName": "", + "constraint": "", + "oldName": "pr_events_ibfk_2", + "oid": 15486989, + "owner": "augur", + "brinPagesPerRange": -1, + "ginPendingListLimit": -1, + "tableName": "pull_request_events", + "size": "8", + "fields": [ + { + "objectType": "IndexField_PGSQL", + "name": "cntrb_id", + "collation": "", + "opClass": "int8_ops", + "opClassSchema": "pg_catalog", + "order": "ASC", + "nullSort": "NULLS LAST", + "oldName": "cntrb_id", + "collationSchema": "" + } + ] + } + ], + "rules": [], + "primaryKey": { + "objectType": "PrimaryKey_PGSQL", + "name": "pr_events_pkey", + "fields": [ + "pr_event_id" + ], + "fillFactor": -1, + "indexTablespace": "", + "comment": "", + "isDeferrable": false, + "isDeferred": false, + "oldName": "pr_events_pkey" + }, + "foreignKeys": [ + { + "objectType": "ForeignKey_PGSQL", + "name": "fk_pull_request_events_contributors_1", + "fields": [ + "cntrb_id" + ], + "referenceSchema": "augur_data", + "referenceTable": "contributors", + "referenceFields": [ + "cntrb_id" + ], + "onDelete": "NO ACTION", + "onUpdate": "NO ACTION", + "comment": "", + "isMatchFull": false, + "isDeferrable": false, + "isDeferred": false, + "sourceCardinality": "ZeroOrManyRelationship", + "targetCardinality": "OneAndOnlyOneRelationship", + "oldName": "fk_pull_request_events_contributors_1" + }, + { + "objectType": "ForeignKey_PGSQL", + "name": "fk_pull_request_events_pull_requests_1", + "fields": [ + "pull_request_id" + ], + "referenceSchema": "augur_data", + "referenceTable": "pull_requests", + "referenceFields": [ + "pull_request_id" + ], + "onDelete": "CASCADE", + "onUpdate": "CASCADE", + "comment": "", + "isMatchFull": false, + "isDeferrable": false, + "isDeferred": false, + "sourceCardinality": "ZeroOrManyRelationship", + "targetCardinality": "OneAndOnlyOneRelationship", + "oldName": "fk_pull_request_events_pull_requests_1" + } + ], + "uniques": [], + "checks": [], + "excludes": [], + "triggers": [], + "partitionKeys": [], + "partitions": [] + }, + { + "objectType": "TableNormal_PGSQL", + "name": "pull_request_files", + "comment": "Pull request commits are an enumeration of each commit associated with a pull request. \nNot all pull requests are from a branch or fork into master. \nThe commits table intends to count only commits that end up in the master branch (i.e., part of the deployed code base for a project).\nTherefore, there will be commit “SHA”’s in this table that are no associated with a commit SHA in the commits table. \nIn cases where the PR is to the master branch of a project, you will find a match. In cases where the PR does not involve the master branch, you will not find a corresponding commit SHA in the commits table. This is expected. ", + "tablespace": "", + "isUnlogged": false, + "owner": "augur", + "inheritFromTables": [], + "hasOIDs": false, + "fillFactor": -1, + "oldName": "pull_request_files", + "oid": 15487944, + "rows": 0, + "isInheritTables": false, + "cluster": "", + "ACL": "", + "isPartition": false, + "partitioningStrategy": "None", + "partitionOfSchema": "", + "partitionOfTable": "", + "partitionListValues": [], + "partitionRangeFromValues": [], + "partitionRangeToValues": [], + "foreignServer": "", + "foreignOptionDisplay": "", + "fields": [ + { + "objectType": "TableField_PGSQL", + "name": "pull_request_id", + "type": "int8", + "length": 64, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "pull_request_id", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 1, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "pr_file_id", + "type": "int8", + "length": 64, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": false, + "defaultType": "Others", + "defaultValue": "nextval('augur_data.pull_request_files_pr_file_id_seq'::regclass)", + "comment": "", + "oldName": "pr_file_id", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 2, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "pr_file_additions", + "type": "int8", + "length": 64, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "pr_file_additions", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 3, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "pr_file_deletions", + "type": "int8", + "length": 64, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "pr_file_deletions", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 4, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "pr_file_path", + "type": "varchar", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "pr_file_path", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 5, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "tool_source", + "type": "varchar", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "tool_source", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 6, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "tool_version", + "type": "varchar", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "tool_version", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 7, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "data_source", + "type": "varchar", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "data_source", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 8, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "data_collection_date", + "type": "timestamp", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "Others", + "defaultValue": "CURRENT_TIMESTAMP", + "comment": "", + "oldName": "data_collection_date", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 9, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + } + ], + "indexes": [], + "rules": [], + "primaryKey": { + "objectType": "PrimaryKey_PGSQL", + "name": "pull_request_files_pkey", + "fields": [ + "pr_file_id" + ], + "fillFactor": -1, + "indexTablespace": "", + "comment": "", + "isDeferrable": false, + "isDeferred": false, + "oldName": "pull_request_files_pkey" + }, + "foreignKeys": [ + { + "objectType": "ForeignKey_PGSQL", + "name": "fk_pull_request_commits_pull_requests_1", + "fields": [ + "pull_request_id" + ], + "referenceSchema": "augur_data", + "referenceTable": "pull_requests", + "referenceFields": [ + "pull_request_id" + ], + "onDelete": "CASCADE", + "onUpdate": "CASCADE", + "comment": "", + "isMatchFull": false, + "isDeferrable": false, + "isDeferred": false, + "sourceCardinality": "ZeroOrManyRelationship", + "targetCardinality": "ZeroOrOneRelationship", + "oldName": "fk_pull_request_commits_pull_requests_1" + } + ], + "uniques": [], + "checks": [], + "excludes": [], + "triggers": [], + "partitionKeys": [], + "partitions": [] + }, + { + "objectType": "TableNormal_PGSQL", + "name": "pull_request_labels", + "comment": "", + "tablespace": "", + "isUnlogged": false, + "owner": "augur", + "inheritFromTables": [], + "hasOIDs": false, + "fillFactor": -1, + "oldName": "pull_request_labels", + "oid": 15486677, + "rows": 0, + "isInheritTables": false, + "cluster": "", + "ACL": "", + "isPartition": false, + "partitioningStrategy": "None", + "partitionOfSchema": "", + "partitionOfTable": "", + "partitionListValues": [], + "partitionRangeFromValues": [], + "partitionRangeToValues": [], + "foreignServer": "", + "foreignOptionDisplay": "", + "fields": [ + { + "objectType": "TableField_PGSQL", + "name": "pr_label_id", + "type": "int8", + "length": 64, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": false, + "defaultType": "Others", + "defaultValue": "nextval('augur_data.pull_request_labels_pr_label_id_seq'::regclass)", + "comment": "", + "oldName": "pr_label_id", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 1, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "pull_request_id", + "type": "int8", + "length": 64, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "pull_request_id", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 2, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "pr_src_id", + "type": "int8", + "length": 64, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "pr_src_id", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 3, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "pr_src_node_id", + "type": "varchar", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "pr_src_node_id", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 4, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "pr_src_url", + "type": "varchar", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "pr_src_url", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 5, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "pr_src_description", + "type": "varchar", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "pr_src_description", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 6, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "pr_src_color", + "type": "varchar", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "pr_src_color", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 7, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "pr_src_default_bool", + "type": "bool", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "pr_src_default_bool", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 8, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "tool_source", + "type": "varchar", + "length": 255, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "tool_source", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 9, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "tool_version", + "type": "varchar", + "length": 255, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "tool_version", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 10, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "data_source", + "type": "varchar", + "length": 255, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "data_source", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 11, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "data_collection_date", + "type": "timestamp", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "Others", + "defaultValue": "CURRENT_TIMESTAMP", + "comment": "", + "oldName": "data_collection_date", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 12, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + } + ], + "indexes": [], + "rules": [], + "primaryKey": { + "objectType": "PrimaryKey_PGSQL", + "name": "pull_request_labels_pkey", + "fields": [ + "pr_label_id" + ], + "fillFactor": -1, + "indexTablespace": "", + "comment": "", + "isDeferrable": false, + "isDeferred": false, + "oldName": "pull_request_labels_pkey" + }, + "foreignKeys": [ + { + "objectType": "ForeignKey_PGSQL", + "name": "fk_pull_request_labels_pull_requests_1", + "fields": [ + "pull_request_id" + ], + "referenceSchema": "augur_data", + "referenceTable": "pull_requests", + "referenceFields": [ + "pull_request_id" + ], + "onDelete": "CASCADE", + "onUpdate": "CASCADE", + "comment": "", + "isMatchFull": false, + "isDeferrable": false, + "isDeferred": false, + "sourceCardinality": "ZeroOrManyRelationship", + "targetCardinality": "ZeroOrOneRelationship", + "oldName": "fk_pull_request_labels_pull_requests_1" + } + ], + "uniques": [], + "checks": [], + "excludes": [], + "triggers": [], + "partitionKeys": [], + "partitions": [] + }, + { + "objectType": "TableNormal_PGSQL", + "name": "pull_request_message_ref", + "comment": "", + "tablespace": "", + "isUnlogged": false, + "owner": "augur", + "inheritFromTables": [], + "hasOIDs": false, + "fillFactor": -1, + "oldName": "pull_request_message_ref", + "oid": 15486685, + "rows": 0, + "isInheritTables": false, + "cluster": "", + "ACL": "", + "isPartition": false, + "partitioningStrategy": "None", + "partitionOfSchema": "", + "partitionOfTable": "", + "partitionListValues": [], + "partitionRangeFromValues": [], + "partitionRangeToValues": [], + "foreignServer": "", + "foreignOptionDisplay": "", + "fields": [ + { + "objectType": "TableField_PGSQL", + "name": "pr_msg_ref_id", + "type": "int8", + "length": 64, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": false, + "defaultType": "Others", + "defaultValue": "nextval('augur_data.pull_request_message_ref_pr_msg_ref_id_seq'::regclass)", + "comment": "", + "oldName": "pr_msg_ref_id", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 1, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "pull_request_id", + "type": "int8", + "length": 64, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "pull_request_id", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 2, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "msg_id", + "type": "int8", + "length": 64, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "msg_id", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 3, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "pr_message_ref_src_comment_id", + "type": "int8", + "length": 64, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "pr_message_ref_src_comment_id", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 4, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "pr_message_ref_src_node_id", + "type": "varchar", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "pr_message_ref_src_node_id", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 5, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "tool_source", + "type": "varchar", + "length": 255, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "tool_source", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 6, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "tool_version", + "type": "varchar", + "length": 255, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "tool_version", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 7, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "data_source", + "type": "varchar", + "length": 255, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "data_source", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 8, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "data_collection_date", + "type": "timestamp", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "Others", + "defaultValue": "CURRENT_TIMESTAMP", + "comment": "", + "oldName": "data_collection_date", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 9, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "repo_id", + "type": "int8", + "length": 64, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "repo_id", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 10, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + } + ], + "indexes": [], + "rules": [], + "primaryKey": { + "objectType": "PrimaryKey_PGSQL", + "name": "pull_request_message_ref_pkey", + "fields": [ + "pr_msg_ref_id" + ], + "fillFactor": -1, + "indexTablespace": "", + "comment": "", + "isDeferrable": false, + "isDeferred": false, + "oldName": "pull_request_message_ref_pkey" + }, + "foreignKeys": [ + { + "objectType": "ForeignKey_PGSQL", + "name": "fk_pull_request_message_ref_message_1", + "fields": [ + "msg_id" + ], + "referenceSchema": "augur_data", + "referenceTable": "message", + "referenceFields": [ + "msg_id" + ], + "onDelete": "CASCADE", + "onUpdate": "CASCADE", + "comment": "", + "isMatchFull": false, + "isDeferrable": false, + "isDeferred": false, + "sourceCardinality": "ZeroOrManyRelationship", + "targetCardinality": "ZeroOrOneRelationship", + "oldName": "fk_pull_request_message_ref_message_1" + }, + { + "objectType": "ForeignKey_PGSQL", + "name": "fk_pull_request_message_ref_pull_requests_1", + "fields": [ + "pull_request_id" + ], + "referenceSchema": "augur_data", + "referenceTable": "pull_requests", + "referenceFields": [ + "pull_request_id" + ], + "onDelete": "CASCADE", + "onUpdate": "CASCADE", + "comment": "", + "isMatchFull": false, + "isDeferrable": false, + "isDeferred": false, + "sourceCardinality": "ZeroOrManyRelationship", + "targetCardinality": "ZeroOrOneRelationship", + "oldName": "fk_pull_request_message_ref_pull_requests_1" + } + ], + "uniques": [], + "checks": [], + "excludes": [], + "triggers": [], + "partitionKeys": [], + "partitions": [] + }, + { + "objectType": "TableNormal_PGSQL", + "name": "pull_request_meta", + "comment": "Pull requests contain referencing metadata. There are a few columns that are discrete. There are also head and base designations for the repo on each side of the pull request. Similar functions exist in GitLab, though the language here is based on GitHub. The JSON Being adapted to as of the development of this schema is here: \"base\": { \"label\": \"chaoss:dev\", \"ref\": \"dev\", \"sha\": \"dc6c6f3947f7dc84ecba3d8bda641ef786e7027d\", \"user\": { \"login\": \"chaoss\", \"id\": 29740296, \"node_id\": \"MDEyOk9yZ2FuaXphdGlvbjI5NzQwMjk2\", \"avatar_url\": \"https://avatars2.githubusercontent.com/u/29740296?v=4\", \"gravatar_id\": \"\", \"url\": \"https://api.github.com/users/chaoss\", \"html_url\": \"https://github.com/chaoss\", \"followers_url\": \"https://api.github.com/users/chaoss/followers\", \"following_url\": \"https://api.github.com/users/chaoss/following{/other_user}\", \"gists_url\": \"https://api.github.com/users/chaoss/gists{/gist_id}\", \"starred_url\": \"https://api.github.com/users/chaoss/starred{/owner}{/repo}\", \"subscriptions_url\": \"https://api.github.com/users/chaoss/subscriptions\", \"organizations_url\": \"https://api.github.com/users/chaoss/orgs\", \"repos_url\": \"https://api.github.com/users/chaoss/repos\", \"events_url\": \"https://api.github.com/users/chaoss/events{/privacy}\", \"received_events_url\": \"https://api.github.com/users/chaoss/received_events\", \"type\": \"Organization\", \"site_admin\": false }, \"repo\": { \"id\": 78134122, \"node_id\": \"MDEwOlJlcG9zaXRvcnk3ODEzNDEyMg==\", \"name\": \"augur\", \"full_name\": \"chaoss/augur\", \"private\": false, \"owner\": { \"login\": \"chaoss\", \"id\": 29740296, \"node_id\": \"MDEyOk9yZ2FuaXphdGlvbjI5NzQwMjk2\", \"avatar_url\": \"https://avatars2.githubusercontent.com/u/29740296?v=4\", \"gravatar_id\": \"\", \"url\": \"https://api.github.com/users/chaoss\", \"html_url\": \"https://github.com/chaoss\", \"followers_url\": \"https://api.github.com/users/chaoss/followers\", \"following_url\": \"https://api.github.com/users/chaoss/following{/other_user}\", \"gists_url\": \"https://api.github.com/users/chaoss/gists{/gist_id}\", \"starred_url\": \"https://api.github.com/users/chaoss/starred{/owner}{/repo}\", \"subscriptions_url\": \"https://api.github.com/users/chaoss/subscriptions\", \"organizations_url\": \"https://api.github.com/users/chaoss/orgs\", \"repos_url\": \"https://api.github.com/users/chaoss/repos\", \"events_url\": \"https://api.github.com/users/chaoss/events{/privacy}\", \"received_events_url\": \"https://api.github.com/users/chaoss/received_events\", \"type\": \"Organization\", \"site_admin\": false }, ", + "tablespace": "", + "isUnlogged": false, + "owner": "augur", + "inheritFromTables": [], + "hasOIDs": false, + "fillFactor": -1, + "oldName": "pull_request_meta", + "oid": 15486693, + "rows": 0, + "isInheritTables": false, + "cluster": "", + "ACL": "", + "isPartition": false, + "partitioningStrategy": "None", + "partitionOfSchema": "", + "partitionOfTable": "", + "partitionListValues": [], + "partitionRangeFromValues": [], + "partitionRangeToValues": [], + "foreignServer": "", + "foreignOptionDisplay": "", + "fields": [ + { + "objectType": "TableField_PGSQL", + "name": "pr_repo_meta_id", + "type": "int8", + "length": 64, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": false, + "defaultType": "Others", + "defaultValue": "nextval('augur_data.pull_request_meta_pr_repo_meta_id_seq'::regclass)", + "comment": "", + "oldName": "pr_repo_meta_id", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 1, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "pull_request_id", + "type": "int8", + "length": 64, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "pull_request_id", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 2, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "pr_head_or_base", + "type": "varchar", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "Each pull request should have one and only one head record; and one and only one base record. ", + "oldName": "pr_head_or_base", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 3, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "pr_src_meta_label", + "type": "varchar", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "This is a representation of the repo:branch information in the pull request. Head is issueing the pull request and base is taking the pull request. For example: (We do not store all of this)\n\n \"head\": {\n \"label\": \"chaoss:pull-request-worker\",\n \"ref\": \"pull-request-worker\",\n \"sha\": \"6b380c3d6d625616f79d702612ebab6d204614f2\",\n \"user\": {\n \"login\": \"chaoss\",\n \"id\": 29740296,\n \"node_id\": \"MDEyOk9yZ2FuaXphdGlvbjI5NzQwMjk2\",\n \"avatar_url\": \"https://avatars2.githubusercontent.com/u/29740296?v=4\",\n \"gravatar_id\": \"\",\n \"url\": \"https://api.github.com/users/chaoss\",\n \"html_url\": \"https://github.com/chaoss\",\n \"followers_url\": \"https://api.github.com/users/chaoss/followers\",\n \"following_url\": \"https://api.github.com/users/chaoss/following{/other_user}\",\n \"gists_url\": \"https://api.github.com/users/chaoss/gists{/gist_id}\",\n \"starred_url\": \"https://api.github.com/users/chaoss/starred{/owner}{/repo}\",\n \"subscriptions_url\": \"https://api.github.com/users/chaoss/subscriptions\",\n \"organizations_url\": \"https://api.github.com/users/chaoss/orgs\",\n \"repos_url\": \"https://api.github.com/users/chaoss/repos\",\n \"events_url\": \"https://api.github.com/users/chaoss/events{/privacy}\",\n \"received_events_url\": \"https://api.github.com/users/chaoss/received_events\",\n \"type\": \"Organization\",\n \"site_admin\": false\n },\n \"repo\": {\n \"id\": 78134122,\n \"node_id\": \"MDEwOlJlcG9zaXRvcnk3ODEzNDEyMg==\",\n \"name\": \"augur\",\n \"full_name\": \"chaoss/augur\",\n \"private\": false,\n \"owner\": {\n \"login\": \"chaoss\",\n \"id\": 29740296,\n \"node_id\": \"MDEyOk9yZ2FuaXphdGlvbjI5NzQwMjk2\",\n \"avatar_url\": \"https://avatars2.githubusercontent.com/u/29740296?v=4\",\n \"gravatar_id\": \"\",\n \"url\": \"https://api.github.com/users/chaoss\",\n \"html_url\": \"https://github.com/chaoss\",\n \"followers_url\": \"https://api.github.com/users/chaoss/followers\",\n \"following_url\": \"https://api.github.com/users/chaoss/following{/other_user}\",\n \"gists_url\": \"https://api.github.com/users/chaoss/gists{/gist_id}\",\n \"starred_url\": \"https://api.github.com/users/chaoss/starred{/owner}{/repo}\",\n \"subscriptions_url\": \"https://api.github.com/users/chaoss/subscriptions\",\n \"organizations_url\": \"https://api.github.com/users/chaoss/orgs\",\n \"repos_url\": \"https://api.github.com/users/chaoss/repos\",\n \"events_url\": \"https://api.github.com/users/chaoss/events{/privacy}\",\n \"received_events_url\": \"https://api.github.com/users/chaoss/received_events\",\n \"type\": \"Organization\",\n \"site_admin\": false\n },\n \"html_url\": \"https://github.com/chaoss/augur\",\n \"description\": \"Python library and web service for Open Source Software Health and Sustainability metrics & data collection.\",\n \"fork\": false,\n \"url\": \"https://api.github.com/repos/chaoss/augur\",\n \"forks_url\": \"https://api.github.com/repos/chaoss/augur/forks\",\n \"keys_url\": \"https://api.github.com/repos/chaoss/augur/keys{/key_id}\",\n \"collaborators_url\": \"https://api.github.com/repos/chaoss/augur/collaborators{/collaborator}\",\n \"teams_url\": \"https://api.github.com/repos/chaoss/augur/teams\",\n \"hooks_url\": \"https://api.github.com/repos/chaoss/augur/hooks\",\n \"issue_events_url\": \"https://api.github.com/repos/chaoss/augur/issues/events{/number}\",\n \"events_url\": \"https://api.github.com/repos/chaoss/augur/events\",\n \"assignees_url\": \"https://api.github.com/repos/chaoss/augur/assignees{/user}\",\n \"branches_url\": \"https://api.github.com/repos/chaoss/augur/branches{/branch}\",\n \"tags_url\": \"https://api.github.com/repos/chaoss/augur/tags\",\n \"blobs_url\": \"https://api.github.com/repos/chaoss/augur/git/blobs{/sha}\",\n \"git_tags_url\": \"https://api.github.com/repos/chaoss/augur/git/tags{/sha}\",\n \"git_refs_url\": \"https://api.github.com/repos/chaoss/augur/git/refs{/sha}\",\n \"trees_url\": \"https://api.github.com/repos/chaoss/augur/git/trees{/sha}\",\n \"statuses_url\": \"https://api.github.com/repos/chaoss/augur/statuses/{sha}\",\n \"languages_url\": \"https://api.github.com/repos/chaoss/augur/languages\",\n \"stargazers_url\": \"https://api.github.com/repos/chaoss/augur/stargazers\",\n \"contributors_url\": \"https://api.github.com/repos/chaoss/augur/contributors\",\n \"subscribers_url\": \"https://api.github.com/repos/chaoss/augur/subscribers\",\n \"subscription_url\": \"https://api.github.com/repos/chaoss/augur/subscription\",\n \"commits_url\": \"https://api.github.com/repos/chaoss/augur/commits{/sha}\",\n \"git_commits_url\": \"https://api.github.com/repos/chaoss/augur/git/commits{/sha}\",\n \"comments_url\": \"https://api.github.com/repos/chaoss/augur/comments{/number}\",\n \"issue_comment_url\": \"https://api.github.com/repos/chaoss/augur/issues/comments{/number}\",\n \"contents_url\": \"https://api.github.com/repos/chaoss/augur/contents/{+path}\",\n \"compare_url\": \"https://api.github.com/repos/chaoss/augur/compare/{base}...{head}\",\n \"merges_url\": \"https://api.github.com/repos/chaoss/augur/merges\",\n \"archive_url\": \"https://api.github.com/repos/chaoss/augur/{archive_format}{/ref}\",\n \"downloads_url\": \"https://api.github.com/repos/chaoss/augur/downloads\",\n \"issues_url\": \"https://api.github.com/repos/chaoss/augur/issues{/number}\",\n \"pulls_url\": \"https://api.github.com/repos/chaoss/augur/pulls{/number}\",\n \"milestones_url\": \"https://api.github.com/repos/chaoss/augur/milestones{/number}\",\n \"notifications_url\": \"https://api.github.com/repos/chaoss/augur/notifications{?since,all,participating}\",\n \"labels_url\": \"https://api.github.com/repos/chaoss/augur/labels{/name}\",\n \"releases_url\": \"https://api.github.com/repos/chaoss/augur/releases{/id}\",\n \"deployments_url\": \"https://api.github.com/repos/chaoss/augur/deployments\",\n \"created_at\": \"2017-01-05T17:34:54Z\",\n \"updated_at\": \"2019-11-15T00:56:12Z\",\n \"pushed_at\": \"2019-12-02T06:27:26Z\",\n \"git_url\": \"git://github.com/chaoss/augur.git\",\n \"ssh_url\": \"git@github.com:chaoss/augur.git\",\n \"clone_url\": \"https://github.com/chaoss/augur.git\",\n \"svn_url\": \"https://github.com/chaoss/augur\",\n \"homepage\": \"http://augur.osshealth.io/\",\n \"size\": 82004,\n \"stargazers_count\": 153,\n \"watchers_count\": 153,\n \"language\": \"Python\",\n \"has_issues\": true,\n \"has_projects\": false,\n \"has_downloads\": true,\n \"has_wiki\": false,\n \"has_pages\": true,\n \"forks_count\": 205,\n \"mirror_url\": null,\n \"archived\": false,\n \"disabled\": false,\n \"open_issues_count\": 14,\n \"license\": {\n \"key\": \"mit\",\n \"name\": \"MIT License\",\n \"spdx_id\": \"MIT\",\n \"url\": \"https://api.github.com/licenses/mit\",\n \"node_id\": \"MDc6TGljZW5zZTEz\"\n },\n \"forks\": 205,\n \"open_issues\": 14,\n \"watchers\": 153,\n \"default_branch\": \"master\"\n }\n },\n \"base\": {\n \"label\": \"chaoss:dev\",\n \"ref\": \"dev\",\n \"sha\": \"bfd2d34b51659613dd842cf83c3873f7699c2a0e\",\n \"user\": {\n \"login\": \"chaoss\",\n \"id\": 29740296,\n \"node_id\": \"MDEyOk9yZ2FuaXphdGlvbjI5NzQwMjk2\",\n \"avatar_url\": \"https://avatars2.githubusercontent.com/u/29740296?v=4\",\n \"gravatar_id\": \"\",\n \"url\": \"https://api.github.com/users/chaoss\",\n \"html_url\": \"https://github.com/chaoss\",\n \"followers_url\": \"https://api.github.com/users/chaoss/followers\",\n \"following_url\": \"https://api.github.com/users/chaoss/following{/other_user}\",\n \"gists_url\": \"https://api.github.com/users/chaoss/gists{/gist_id}\",\n \"starred_url\": \"https://api.github.com/users/chaoss/starred{/owner}{/repo}\",\n \"subscriptions_url\": \"https://api.github.com/users/chaoss/subscriptions\",\n \"organizations_url\": \"https://api.github.com/users/chaoss/orgs\",\n \"repos_url\": \"https://api.github.com/users/chaoss/repos\",\n \"events_url\": \"https://api.github.com/users/chaoss/events{/privacy}\",\n \"received_events_url\": \"https://api.github.com/users/chaoss/received_events\",\n \"type\": \"Organization\",\n \"site_admin\": false\n },\n \"repo\": {\n \"id\": 78134122,\n \"node_id\": \"MDEwOlJlcG9zaXRvcnk3ODEzNDEyMg==\",\n \"name\": \"augur\",\n \"full_name\": \"chaoss/augur\",\n \"private\": false,\n \"owner\": {\n \"login\": \"chaoss\",\n \"id\": 29740296,\n \"node_id\": \"MDEyOk9yZ2FuaXphdGlvbjI5NzQwMjk2\",\n \"avatar_url\": \"https://avatars2.githubusercontent.com/u/29740296?v=4\",\n \"gravatar_id\": \"\",\n \"url\": \"https://api.github.com/users/chaoss\",\n \"html_url\": \"https://github.com/chaoss\",\n \"followers_url\": \"https://api.github.com/users/chaoss/followers\",\n \"following_url\": \"https://api.github.com/users/chaoss/following{/other_user}\",\n \"gists_url\": \"https://api.github.com/users/chaoss/gists{/gist_id}\",\n \"starred_url\": \"https://api.github.com/users/chaoss/starred{/owner}{/repo}\",\n \"subscriptions_url\": \"https://api.github.com/users/chaoss/subscriptions\",\n \"organizations_url\": \"https://api.github.com/users/chaoss/orgs\",\n \"repos_url\": \"https://api.github.com/users/chaoss/repos\",\n \"events_url\": \"https://api.github.com/users/chaoss/events{/privacy}\",\n \"received_events_url\": \"https://api.github.com/users/chaoss/received_events\",\n \"type\": \"Organization\",\n \"site_admin\": false\n },\n", + "oldName": "pr_src_meta_label", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 4, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "pr_src_meta_ref", + "type": "varchar", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "pr_src_meta_ref", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 5, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "pr_sha", + "type": "varchar", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "pr_sha", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 6, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "cntrb_id", + "type": "int8", + "length": 64, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "cntrb_id", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 7, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "tool_source", + "type": "varchar", + "length": 255, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "tool_source", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 8, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "tool_version", + "type": "varchar", + "length": 255, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "tool_version", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 9, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "data_source", + "type": "varchar", + "length": 255, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "data_source", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 10, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "data_collection_date", + "type": "timestamp", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "Others", + "defaultValue": "CURRENT_TIMESTAMP", + "comment": "", + "oldName": "data_collection_date", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 11, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + } + ], + "indexes": [ + { + "objectType": "Index_PGSQL", + "name": "pr_meta-cntrbid-idx", + "comment": "", + "isClustered": false, + "isConcurrently": false, + "isUnique": false, + "fastUpdate": "", + "buffering": "", + "fillFactor": -1, + "method": "BTree", + "tableSpaceName": "", + "constraint": "", + "oldName": "pr_meta-cntrbid-idx", + "oid": 15488146, + "owner": "augur", + "brinPagesPerRange": -1, + "ginPendingListLimit": -1, + "tableName": "pull_request_meta", + "size": "8", + "fields": [ + { + "objectType": "IndexField_PGSQL", + "name": "cntrb_id", + "collation": "", + "opClass": "int8_ops", + "opClassSchema": "pg_catalog", + "order": "ASC", + "nullSort": "NULLS LAST", + "oldName": "cntrb_id", + "collationSchema": "" + } + ] + } + ], + "rules": [], + "primaryKey": { + "objectType": "PrimaryKey_PGSQL", + "name": "pull_request_meta_pkey", + "fields": [ + "pr_repo_meta_id" + ], + "fillFactor": -1, + "indexTablespace": "", + "comment": "", + "isDeferrable": false, + "isDeferred": false, + "oldName": "pull_request_meta_pkey" + }, + "foreignKeys": [ + { + "objectType": "ForeignKey_PGSQL", + "name": "fk_pull_request_meta_contributors_2", + "fields": [ + "cntrb_id" + ], + "referenceSchema": "augur_data", + "referenceTable": "contributors", + "referenceFields": [ + "cntrb_id" + ], + "onDelete": "NO ACTION", + "onUpdate": "NO ACTION", + "comment": "", + "isMatchFull": false, + "isDeferrable": false, + "isDeferred": false, + "sourceCardinality": "ZeroOrManyRelationship", + "targetCardinality": "ZeroOrOneRelationship", + "oldName": "fk_pull_request_meta_contributors_2" + }, + { + "objectType": "ForeignKey_PGSQL", + "name": "fk_pull_request_meta_pull_requests_1", + "fields": [ + "pull_request_id" + ], + "referenceSchema": "augur_data", + "referenceTable": "pull_requests", + "referenceFields": [ + "pull_request_id" + ], + "onDelete": "CASCADE", + "onUpdate": "CASCADE", + "comment": "", + "isMatchFull": false, + "isDeferrable": false, + "isDeferred": false, + "sourceCardinality": "ZeroOrManyRelationship", + "targetCardinality": "ZeroOrOneRelationship", + "oldName": "fk_pull_request_meta_pull_requests_1" + } + ], + "uniques": [], + "checks": [], + "excludes": [], + "triggers": [], + "partitionKeys": [], + "partitions": [] + }, + { + "objectType": "TableNormal_PGSQL", + "name": "pull_request_repo", + "comment": "This table is for storing information about forks that exist as part of a pull request. Generally we do not want to track these like ordinary repositories. ", + "tablespace": "", + "isUnlogged": false, + "owner": "augur", + "inheritFromTables": [], + "hasOIDs": false, + "fillFactor": -1, + "oldName": "pull_request_repo", + "oid": 15486701, + "rows": 0, + "isInheritTables": false, + "cluster": "", + "ACL": "", + "isPartition": false, + "partitioningStrategy": "None", + "partitionOfSchema": "", + "partitionOfTable": "", + "partitionListValues": [], + "partitionRangeFromValues": [], + "partitionRangeToValues": [], + "foreignServer": "", + "foreignOptionDisplay": "", + "fields": [ + { + "objectType": "TableField_PGSQL", + "name": "pr_repo_id", + "type": "int8", + "length": 64, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": false, + "defaultType": "Others", + "defaultValue": "nextval('augur_data.pull_request_repo_pr_repo_id_seq'::regclass)", + "comment": "", + "oldName": "pr_repo_id", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 1, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "pr_repo_meta_id", + "type": "int8", + "length": 64, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "pr_repo_meta_id", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 2, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "pr_repo_head_or_base", + "type": "varchar", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "For ease of validation checking, we should determine if the repository referenced is the head or base of the pull request. Each pull request should have one and only one of these, which is not enforcable easily in the database.", + "oldName": "pr_repo_head_or_base", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 3, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "pr_src_repo_id", + "type": "int8", + "length": 64, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "pr_src_repo_id", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 4, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "pr_src_node_id", + "type": "varchar", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "pr_src_node_id", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 5, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "pr_repo_name", + "type": "varchar", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "pr_repo_name", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 6, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "pr_repo_full_name", + "type": "varchar", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "pr_repo_full_name", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 7, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "pr_repo_private_bool", + "type": "bool", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "pr_repo_private_bool", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 8, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "pr_cntrb_id", + "type": "int8", + "length": 64, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "pr_cntrb_id", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 9, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "tool_source", + "type": "varchar", + "length": 255, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "tool_source", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 10, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "tool_version", + "type": "varchar", + "length": 255, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "tool_version", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 11, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "data_source", + "type": "varchar", + "length": 255, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "data_source", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 12, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "data_collection_date", + "type": "timestamp", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "Others", + "defaultValue": "CURRENT_TIMESTAMP", + "comment": "", + "oldName": "data_collection_date", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 13, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + } + ], + "indexes": [ + { + "objectType": "Index_PGSQL", + "name": "pr-cntrb-idx-repo", + "comment": "", + "isClustered": false, + "isConcurrently": false, + "isUnique": false, + "fastUpdate": "", + "buffering": "", + "fillFactor": -1, + "method": "BTree", + "tableSpaceName": "", + "constraint": "", + "oldName": "pr-cntrb-idx-repo", + "oid": 15488144, + "owner": "augur", + "brinPagesPerRange": -1, + "ginPendingListLimit": -1, + "tableName": "pull_request_repo", + "size": "8", + "fields": [ + { + "objectType": "IndexField_PGSQL", + "name": "pr_cntrb_id", + "collation": "", + "opClass": "int8_ops", + "opClassSchema": "pg_catalog", + "order": "ASC", + "nullSort": "NULLS LAST", + "oldName": "pr_cntrb_id", + "collationSchema": "" + } + ] + } + ], + "rules": [], + "primaryKey": { + "objectType": "PrimaryKey_PGSQL", + "name": "pull_request_repo_pkey", + "fields": [ + "pr_repo_id" + ], + "fillFactor": -1, + "indexTablespace": "", + "comment": "", + "isDeferrable": false, + "isDeferred": false, + "oldName": "pull_request_repo_pkey" + }, + "foreignKeys": [ + { + "objectType": "ForeignKey_PGSQL", + "name": "fk_pull_request_repo_contributors_1", + "fields": [ + "pr_cntrb_id" + ], + "referenceSchema": "augur_data", + "referenceTable": "contributors", + "referenceFields": [ + "cntrb_id" + ], + "onDelete": "NO ACTION", + "onUpdate": "NO ACTION", + "comment": "", + "isMatchFull": false, + "isDeferrable": false, + "isDeferred": false, + "sourceCardinality": "ZeroOrManyRelationship", + "targetCardinality": "ZeroOrOneRelationship", + "oldName": "fk_pull_request_repo_contributors_1" + }, + { + "objectType": "ForeignKey_PGSQL", + "name": "fk_pull_request_repo_pull_request_meta_1", + "fields": [ + "pr_repo_meta_id" + ], + "referenceSchema": "augur_data", + "referenceTable": "pull_request_meta", + "referenceFields": [ + "pr_repo_meta_id" + ], + "onDelete": "CASCADE", + "onUpdate": "CASCADE", + "comment": "", + "isMatchFull": false, + "isDeferrable": false, + "isDeferred": false, + "sourceCardinality": "ZeroOrManyRelationship", + "targetCardinality": "ZeroOrOneRelationship", + "oldName": "fk_pull_request_repo_pull_request_meta_1" + } + ], + "uniques": [], + "checks": [], + "excludes": [], + "triggers": [], + "partitionKeys": [], + "partitions": [] + }, + { + "objectType": "TableNormal_PGSQL", + "name": "pull_request_review_message_ref", + "comment": "", + "tablespace": "", + "isUnlogged": false, + "owner": "augur", + "inheritFromTables": [], + "hasOIDs": false, + "fillFactor": -1, + "oldName": "pull_request_review_message_ref", + "oid": 15488260, + "rows": 0, + "isInheritTables": false, + "cluster": "", + "ACL": "", + "isPartition": false, + "partitioningStrategy": "None", + "partitionOfSchema": "", + "partitionOfTable": "", + "partitionListValues": [], + "partitionRangeFromValues": [], + "partitionRangeToValues": [], + "foreignServer": "", + "foreignOptionDisplay": "", + "fields": [ + { + "objectType": "TableField_PGSQL", + "name": "pr_review_msg_ref_id", + "type": "int8", + "length": 64, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": false, + "defaultType": "Others", + "defaultValue": "nextval('augur_data.pull_request_review_message_ref_pr_review_msg_ref_id_seq'::regclass)", + "comment": "", + "oldName": "pr_review_msg_ref_id", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 1, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "pr_review_id", + "type": "int8", + "length": 64, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": false, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "pr_review_id", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 2, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "msg_id", + "type": "int8", + "length": 64, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": false, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "msg_id", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 3, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "pr_review_msg_url", + "type": "varchar", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "pr_review_msg_url", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 4, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "pr_review_src_id", + "type": "int8", + "length": 64, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "pr_review_src_id", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 5, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "pr_review_msg_src_id", + "type": "int8", + "length": 64, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "pr_review_msg_src_id", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 6, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "pr_review_msg_node_id", + "type": "varchar", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "pr_review_msg_node_id", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 7, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "pr_review_msg_diff_hunk", + "type": "varchar", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "pr_review_msg_diff_hunk", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 8, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "pr_review_msg_path", + "type": "varchar", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "pr_review_msg_path", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 9, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "pr_review_msg_position", + "type": "varchar", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "pr_review_msg_position", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 10, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "pr_review_msg_original_position", + "type": "varchar", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "pr_review_msg_original_position", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 11, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "pr_review_msg_commit_id", + "type": "varchar", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "pr_review_msg_commit_id", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 12, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "pr_review_msg_original_commit_id", + "type": "varchar", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "pr_review_msg_original_commit_id", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 13, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "pr_review_msg_updated_at", + "type": "timestamp", + "length": 6, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "pr_review_msg_updated_at", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 14, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "pr_review_msg_html_url", + "type": "varchar", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "pr_review_msg_html_url", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 15, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "pr_url", + "type": "varchar", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "pr_url", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 16, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "pr_review_msg_author_association", + "type": "varchar", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "pr_review_msg_author_association", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 17, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "pr_review_msg_start_line", + "type": "varchar", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "pr_review_msg_start_line", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 18, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "pr_review_msg_original_start_line", + "type": "varchar", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "pr_review_msg_original_start_line", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 19, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "pr_review_msg_start_side", + "type": "varchar", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "pr_review_msg_start_side", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 20, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "pr_review_msg_line", + "type": "varchar", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "pr_review_msg_line", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 21, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "pr_review_msg_original_line", + "type": "varchar", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "pr_review_msg_original_line", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 22, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "pr_review_msg_side", + "type": "varchar", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "pr_review_msg_side", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 23, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "tool_source", + "type": "varchar", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "tool_source", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 24, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "tool_version", + "type": "varchar", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "tool_version", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 25, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "data_source", + "type": "varchar", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "data_source", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 26, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "data_collection_date", + "type": "timestamp", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "Others", + "defaultValue": "CURRENT_TIMESTAMP", + "comment": "", + "oldName": "data_collection_date", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 27, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "repo_id", + "type": "int8", + "length": 64, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "repo_id", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 28, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + } + ], + "indexes": [], + "rules": [], + "primaryKey": { + "objectType": "PrimaryKey_PGSQL", + "name": "pr_review_msg_ref_id", + "fields": [ + "pr_review_msg_ref_id" + ], + "fillFactor": -1, + "indexTablespace": "", + "comment": "", + "isDeferrable": false, + "isDeferred": false, + "oldName": "pr_review_msg_ref_id" + }, + "foreignKeys": [ + { + "objectType": "ForeignKey_PGSQL", + "name": "fk_pull_request_review_message_ref_message_1", + "fields": [ + "msg_id" + ], + "referenceSchema": "augur_data", + "referenceTable": "message", + "referenceFields": [ + "msg_id" + ], + "onDelete": "NO ACTION", + "onUpdate": "NO ACTION", + "comment": "", + "isMatchFull": false, + "isDeferrable": false, + "isDeferred": false, + "sourceCardinality": "ZeroOrManyRelationship", + "targetCardinality": "OneAndOnlyOneRelationship", + "oldName": "fk_pull_request_review_message_ref_message_1" + }, + { + "objectType": "ForeignKey_PGSQL", + "name": "fk_pull_request_review_message_ref_pull_request_reviews_1", + "fields": [ + "pr_review_id" + ], + "referenceSchema": "augur_data", + "referenceTable": "pull_request_reviews", + "referenceFields": [ + "pr_review_id" + ], + "onDelete": "CASCADE", + "onUpdate": "CASCADE", + "comment": "", + "isMatchFull": false, + "isDeferrable": false, + "isDeferred": false, + "sourceCardinality": "ZeroOrManyRelationship", + "targetCardinality": "OneAndOnlyOneRelationship", + "oldName": "fk_pull_request_review_message_ref_pull_request_reviews_1" + } + ], + "uniques": [], + "checks": [], + "excludes": [], + "triggers": [], + "partitionKeys": [], + "partitions": [] + }, + { + "objectType": "TableNormal_PGSQL", + "name": "pull_request_reviewers", + "comment": "", + "tablespace": "", + "isUnlogged": false, + "owner": "augur", + "inheritFromTables": [], + "hasOIDs": false, + "fillFactor": -1, + "oldName": "pull_request_reviewers", + "oid": 15486709, + "rows": 0, + "isInheritTables": false, + "cluster": "", + "ACL": "", + "isPartition": false, + "partitioningStrategy": "None", + "partitionOfSchema": "", + "partitionOfTable": "", + "partitionListValues": [], + "partitionRangeFromValues": [], + "partitionRangeToValues": [], + "foreignServer": "", + "foreignOptionDisplay": "", + "fields": [ + { + "objectType": "TableField_PGSQL", + "name": "pr_reviewer_map_id", + "type": "int8", + "length": 64, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": false, + "defaultType": "Others", + "defaultValue": "nextval('augur_data.pull_request_reviewers_pr_reviewer_map_id_seq'::regclass)", + "comment": "", + "oldName": "pr_reviewer_map_id", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 1, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "pull_request_id", + "type": "int8", + "length": 64, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "pull_request_id", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 2, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "cntrb_id", + "type": "int8", + "length": 64, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "cntrb_id", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 3, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "tool_source", + "type": "varchar", + "length": 255, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "tool_source", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 4, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "tool_version", + "type": "varchar", + "length": 255, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "tool_version", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 5, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "data_source", + "type": "varchar", + "length": 255, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "data_source", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 6, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "data_collection_date", + "type": "timestamp", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "Others", + "defaultValue": "CURRENT_TIMESTAMP", + "comment": "", + "oldName": "data_collection_date", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 7, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "pr_reviewer_src_id", + "type": "int8", + "length": 64, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "pr_reviewer_src_id", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 8, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + } + ], + "indexes": [ + { + "objectType": "Index_PGSQL", + "name": "pr-reviewers-cntrb-idx1", + "comment": "", + "isClustered": false, + "isConcurrently": false, + "isUnique": false, + "fastUpdate": "", + "buffering": "", + "fillFactor": -1, + "method": "BTree", + "tableSpaceName": "", + "constraint": "", + "oldName": "pr-reviewers-cntrb-idx1", + "oid": 15488148, + "owner": "augur", + "brinPagesPerRange": -1, + "ginPendingListLimit": -1, + "tableName": "pull_request_reviewers", + "size": "8", + "fields": [ + { + "objectType": "IndexField_PGSQL", + "name": "cntrb_id", + "collation": "", + "opClass": "int8_ops", + "opClassSchema": "pg_catalog", + "order": "ASC", + "nullSort": "NULLS LAST", + "oldName": "cntrb_id", + "collationSchema": "" + } + ] + } + ], + "rules": [], + "primaryKey": { + "objectType": "PrimaryKey_PGSQL", + "name": "pull_request_reviewers_pkey", + "fields": [ + "pr_reviewer_map_id" + ], + "fillFactor": -1, + "indexTablespace": "", + "comment": "", + "isDeferrable": false, + "isDeferred": false, + "oldName": "pull_request_reviewers_pkey" + }, + "foreignKeys": [ + { + "objectType": "ForeignKey_PGSQL", + "name": "fk_pull_request_reviewers_contributors_1", + "fields": [ + "cntrb_id" + ], + "referenceSchema": "augur_data", + "referenceTable": "contributors", + "referenceFields": [ + "cntrb_id" + ], + "onDelete": "CASCADE", + "onUpdate": "CASCADE", + "comment": "", + "isMatchFull": false, + "isDeferrable": false, + "isDeferred": false, + "sourceCardinality": "ZeroOrManyRelationship", + "targetCardinality": "ZeroOrOneRelationship", + "oldName": "fk_pull_request_reviewers_contributors_1" + }, + { + "objectType": "ForeignKey_PGSQL", + "name": "fk_pull_request_reviewers_pull_requests_1", + "fields": [ + "pull_request_id" + ], + "referenceSchema": "augur_data", + "referenceTable": "pull_requests", + "referenceFields": [ + "pull_request_id" + ], + "onDelete": "CASCADE", + "onUpdate": "CASCADE", + "comment": "", + "isMatchFull": false, + "isDeferrable": false, + "isDeferred": false, + "sourceCardinality": "ZeroOrManyRelationship", + "targetCardinality": "ZeroOrOneRelationship", + "oldName": "fk_pull_request_reviewers_pull_requests_1" + } + ], + "uniques": [], + "checks": [], + "excludes": [], + "triggers": [], + "partitionKeys": [], + "partitions": [] + }, + { + "objectType": "TableNormal_PGSQL", + "name": "pull_request_reviews", + "comment": "", + "tablespace": "", + "isUnlogged": false, + "owner": "augur", + "inheritFromTables": [], + "hasOIDs": false, + "fillFactor": -1, + "oldName": "pull_request_reviews", + "oid": 15488270, + "rows": 0, + "isInheritTables": false, + "cluster": "", + "ACL": "", + "isPartition": false, + "partitioningStrategy": "None", + "partitionOfSchema": "", + "partitionOfTable": "", + "partitionListValues": [], + "partitionRangeFromValues": [], + "partitionRangeToValues": [], + "foreignServer": "", + "foreignOptionDisplay": "", + "fields": [ + { + "objectType": "TableField_PGSQL", + "name": "pr_review_id", + "type": "int8", + "length": 64, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": false, + "defaultType": "Others", + "defaultValue": "nextval('augur_data.pull_request_reviews_pr_review_id_seq'::regclass)", + "comment": "", + "oldName": "pr_review_id", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 1, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "pull_request_id", + "type": "int8", + "length": 64, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": false, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "pull_request_id", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 2, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "cntrb_id", + "type": "int8", + "length": 64, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": false, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "cntrb_id", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 3, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "pr_review_author_association", + "type": "varchar", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "pr_review_author_association", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 4, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "pr_review_state", + "type": "varchar", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "pr_review_state", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 5, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "pr_review_body", + "type": "varchar", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "pr_review_body", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 6, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "pr_review_submitted_at", + "type": "timestamp", + "length": 6, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "pr_review_submitted_at", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 7, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "pr_review_src_id", + "type": "int8", + "length": 64, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "pr_review_src_id", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 8, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "pr_review_node_id", + "type": "varchar", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "pr_review_node_id", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 9, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "pr_review_html_url", + "type": "varchar", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "pr_review_html_url", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 10, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "pr_review_pull_request_url", + "type": "varchar", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "pr_review_pull_request_url", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 11, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "pr_review_commit_id", + "type": "varchar", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "pr_review_commit_id", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 12, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "tool_source", + "type": "varchar", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "tool_source", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 13, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "tool_version", + "type": "varchar", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "tool_version", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 14, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "data_source", + "type": "varchar", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "data_source", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 15, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "data_collection_date", + "type": "timestamp", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "Others", + "defaultValue": "CURRENT_TIMESTAMP", + "comment": "", + "oldName": "data_collection_date", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 16, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + } + ], + "indexes": [], + "rules": [], + "primaryKey": { + "objectType": "PrimaryKey_PGSQL", + "name": "pull_request_review_id", + "fields": [ + "pr_review_id" + ], + "fillFactor": -1, + "indexTablespace": "", + "comment": "", + "isDeferrable": false, + "isDeferred": false, + "oldName": "pull_request_review_id" + }, + "foreignKeys": [ + { + "objectType": "ForeignKey_PGSQL", + "name": "fk_pull_request_reviews_contributors_1", + "fields": [ + "cntrb_id" + ], + "referenceSchema": "augur_data", + "referenceTable": "contributors", + "referenceFields": [ + "cntrb_id" + ], + "onDelete": "CASCADE", + "onUpdate": "CASCADE", + "comment": "", + "isMatchFull": false, + "isDeferrable": false, + "isDeferred": false, + "sourceCardinality": "ZeroOrManyRelationship", + "targetCardinality": "OneAndOnlyOneRelationship", + "oldName": "fk_pull_request_reviews_contributors_1" + }, + { + "objectType": "ForeignKey_PGSQL", + "name": "fk_pull_request_reviews_pull_requests_1", + "fields": [ + "pull_request_id" + ], + "referenceSchema": "augur_data", + "referenceTable": "pull_requests", + "referenceFields": [ + "pull_request_id" + ], + "onDelete": "CASCADE", + "onUpdate": "CASCADE", + "comment": "", + "isMatchFull": false, + "isDeferrable": false, + "isDeferred": false, + "sourceCardinality": "ZeroOrManyRelationship", + "targetCardinality": "OneAndOnlyOneRelationship", + "oldName": "fk_pull_request_reviews_pull_requests_1" + } + ], + "uniques": [], + "checks": [], + "excludes": [], + "triggers": [], + "partitionKeys": [], + "partitions": [] + }, + { + "objectType": "TableNormal_PGSQL", + "name": "pull_request_teams", + "comment": "", + "tablespace": "", + "isUnlogged": false, + "owner": "augur", + "inheritFromTables": [], + "hasOIDs": false, + "fillFactor": -1, + "oldName": "pull_request_teams", + "oid": 15486717, + "rows": 0, + "isInheritTables": false, + "cluster": "", + "ACL": "", + "isPartition": false, + "partitioningStrategy": "None", + "partitionOfSchema": "", + "partitionOfTable": "", + "partitionListValues": [], + "partitionRangeFromValues": [], + "partitionRangeToValues": [], + "foreignServer": "", + "foreignOptionDisplay": "", + "fields": [ + { + "objectType": "TableField_PGSQL", + "name": "pr_team_id", + "type": "int8", + "length": 64, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": false, + "defaultType": "Others", + "defaultValue": "nextval('augur_data.pull_request_teams_pr_team_id_seq'::regclass)", + "comment": "", + "oldName": "pr_team_id", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 1, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "pull_request_id", + "type": "int8", + "length": 64, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "pull_request_id", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 2, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "pr_src_team_id", + "type": "int8", + "length": 64, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "pr_src_team_id", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 3, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "pr_src_team_node", + "type": "varchar", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "pr_src_team_node", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 4, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "pr_src_team_url", + "type": "varchar", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "pr_src_team_url", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 5, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "pr_team_name", + "type": "varchar", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "pr_team_name", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 6, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "pr_team_slug", + "type": "varchar", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "pr_team_slug", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 7, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "pr_team_description", + "type": "varchar", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "pr_team_description", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 8, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "pr_team_privacy", + "type": "varchar", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "pr_team_privacy", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 9, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "pr_team_permission", + "type": "varchar", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "pr_team_permission", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 10, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "pr_team_src_members_url", + "type": "varchar", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "pr_team_src_members_url", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 11, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "pr_team_src_repositories_url", + "type": "varchar", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "pr_team_src_repositories_url", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 12, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "pr_team_parent_id", + "type": "int8", + "length": 64, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "pr_team_parent_id", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 13, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "tool_source", + "type": "varchar", + "length": 255, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "tool_source", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 14, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "tool_version", + "type": "varchar", + "length": 255, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "tool_version", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 15, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "data_source", + "type": "varchar", + "length": 255, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "data_source", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 16, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "data_collection_date", + "type": "timestamp", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "Others", + "defaultValue": "CURRENT_TIMESTAMP", + "comment": "", + "oldName": "data_collection_date", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 17, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + } + ], + "indexes": [], + "rules": [], + "primaryKey": { + "objectType": "PrimaryKey_PGSQL", + "name": "pull_request_teams_pkey", + "fields": [ + "pr_team_id" + ], + "fillFactor": -1, + "indexTablespace": "", + "comment": "", + "isDeferrable": false, + "isDeferred": false, + "oldName": "pull_request_teams_pkey" + }, + "foreignKeys": [ + { + "objectType": "ForeignKey_PGSQL", + "name": "fk_pull_request_teams_pull_requests_1", + "fields": [ + "pull_request_id" + ], + "referenceSchema": "augur_data", + "referenceTable": "pull_requests", + "referenceFields": [ + "pull_request_id" + ], + "onDelete": "CASCADE", + "onUpdate": "CASCADE", + "comment": "", + "isMatchFull": false, + "isDeferrable": false, + "isDeferred": false, + "sourceCardinality": "ZeroOrManyRelationship", + "targetCardinality": "ZeroOrOneRelationship", + "oldName": "fk_pull_request_teams_pull_requests_1" + } + ], + "uniques": [], + "checks": [], + "excludes": [], + "triggers": [], + "partitionKeys": [], + "partitions": [] + }, + { + "objectType": "TableNormal_PGSQL", + "name": "pull_requests", + "comment": "", + "tablespace": "", + "isUnlogged": false, + "owner": "augur", + "inheritFromTables": [], + "hasOIDs": false, + "fillFactor": -1, + "oldName": "pull_requests", + "oid": 15486725, + "rows": 1012, + "isInheritTables": false, + "cluster": "", + "ACL": "", + "isPartition": false, + "partitioningStrategy": "None", + "partitionOfSchema": "", + "partitionOfTable": "", + "partitionListValues": [], + "partitionRangeFromValues": [], + "partitionRangeToValues": [], + "foreignServer": "", + "foreignOptionDisplay": "", + "fields": [ + { + "objectType": "TableField_PGSQL", + "name": "pull_request_id", + "type": "int8", + "length": 64, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": false, + "defaultType": "Others", + "defaultValue": "nextval('augur_data.pull_requests_pull_request_id_seq'::regclass)", + "comment": "", + "oldName": "pull_request_id", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 1, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "pr_url", + "type": "varchar", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "pr_url", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 2, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "pr_src_id", + "type": "int8", + "length": 64, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "The pr_src_id is unique across all of github.", + "oldName": "pr_src_id", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 3, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "pr_src_node_id", + "type": "varchar", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "pr_src_node_id", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 4, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "pr_html_url", + "type": "varchar", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "pr_html_url", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 5, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "pr_diff_url", + "type": "varchar", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "pr_diff_url", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 6, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "pr_patch_url", + "type": "varchar", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "pr_patch_url", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 7, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "pr_issue_url", + "type": "varchar", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "pr_issue_url", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 8, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "pr_augur_issue_id", + "type": "int8", + "length": 64, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "This is to link to the augur stored related issue", + "oldName": "pr_augur_issue_id", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 9, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "pr_src_number", + "type": "int8", + "length": 64, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "The pr_src_number is unique within a repository.", + "oldName": "pr_src_number", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 10, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "pr_src_state", + "type": "varchar", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "pr_src_state", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 11, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "pr_src_locked", + "type": "bool", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "pr_src_locked", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 12, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "pr_src_title", + "type": "varchar", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "pr_src_title", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 13, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "pr_augur_contributor_id", + "type": "int8", + "length": 64, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "This is to link to the augur contributor record. ", + "oldName": "pr_augur_contributor_id", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 14, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "pr_body", + "type": "text", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "pr_body", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 15, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "pr_created_at", + "type": "timestamp", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "pr_created_at", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 16, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "pr_updated_at", + "type": "timestamp", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "pr_updated_at", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 17, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "pr_closed_at", + "type": "timestamp", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "pr_closed_at", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 18, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "pr_merged_at", + "type": "timestamp", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "pr_merged_at", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 19, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "pr_merge_commit_sha", + "type": "varchar", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "pr_merge_commit_sha", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 20, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "pr_teams", + "type": "int8", + "length": 64, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "One to many with pull request teams. ", + "oldName": "pr_teams", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 21, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "pr_milestone", + "type": "varchar", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "pr_milestone", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 22, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "pr_commits_url", + "type": "varchar", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "pr_commits_url", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 23, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "pr_review_comments_url", + "type": "varchar", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "pr_review_comments_url", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 24, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "pr_review_comment_url", + "type": "varchar", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "This is a field with limited utility. It does expose how to access a specific comment if needed with parameters. If the source changes URL structure, it may be useful", + "oldName": "pr_review_comment_url", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 25, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "pr_comments_url", + "type": "varchar", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "pr_comments_url", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 26, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "pr_statuses_url", + "type": "varchar", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "pr_statuses_url", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 27, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "pr_meta_head_id", + "type": "int8", + "length": 64, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "The metadata for the head repo that links to the pull_request_meta table. ", + "oldName": "pr_meta_head_id", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 28, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "pr_meta_base_id", + "type": "int8", + "length": 64, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "The metadata for the base repo that links to the pull_request_meta table. ", + "oldName": "pr_meta_base_id", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 29, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "pr_src_issue_url", + "type": "varchar", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "pr_src_issue_url", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 30, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "pr_src_comments_url", + "type": "varchar", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "pr_src_comments_url", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 31, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "pr_src_review_comments_url", + "type": "varchar", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "pr_src_review_comments_url", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 32, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "pr_src_commits_url", + "type": "varchar", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "pr_src_commits_url", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 33, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "pr_src_statuses_url", + "type": "varchar", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "pr_src_statuses_url", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 34, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "pr_src_author_association", + "type": "varchar", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "pr_src_author_association", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 35, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "tool_source", + "type": "varchar", + "length": 255, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "tool_source", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 36, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "tool_version", + "type": "varchar", + "length": 255, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "tool_version", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 37, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "data_source", + "type": "varchar", + "length": 255, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "data_source", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 38, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "data_collection_date", + "type": "timestamp", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "Others", + "defaultValue": "CURRENT_TIMESTAMP", + "comment": "", + "oldName": "data_collection_date", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 39, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "repo_id", + "type": "int8", + "length": 64, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "Others", + "defaultValue": "0", + "comment": "", + "oldName": "repo_id", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 40, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + } + ], + "indexes": [ + { + "objectType": "Index_PGSQL", + "name": "id_node", + "comment": "", + "isClustered": false, + "isConcurrently": false, + "isUnique": false, + "fastUpdate": "", + "buffering": "", + "fillFactor": -1, + "method": "BTree", + "tableSpaceName": "", + "constraint": "", + "oldName": "id_node", + "oid": 15487004, + "owner": "augur", + "brinPagesPerRange": -1, + "ginPendingListLimit": -1, + "tableName": "pull_requests", + "size": "72", + "fields": [ + { + "objectType": "IndexField_PGSQL", + "name": "pr_src_id", + "collation": "", + "opClass": "int8_ops", + "opClassSchema": "pg_catalog", + "order": "DESC", + "nullSort": "NULLS FIRST", + "oldName": "pr_src_id", + "collationSchema": "" + }, + { + "objectType": "IndexField_PGSQL", + "name": "pr_src_node_id", + "collation": "default", + "opClass": "text_ops", + "opClassSchema": "pg_catalog", + "order": "DESC", + "nullSort": "NULLS LAST", + "oldName": "pr_src_node_id", + "collationSchema": "pg_catalog" + } + ] + }, + { + "objectType": "Index_PGSQL", + "name": "pull_requests_idx_repo_id_data_datex", + "comment": "", + "isClustered": false, + "isConcurrently": false, + "isUnique": false, + "fastUpdate": "", + "buffering": "", + "fillFactor": -1, + "method": "BTree", + "tableSpaceName": "", + "constraint": "", + "oldName": "pull_requests_idx_repo_id_data_datex", + "oid": 15488442, + "owner": "augur", + "brinPagesPerRange": -1, + "ginPendingListLimit": -1, + "tableName": "pull_requests", + "size": "48", + "fields": [ + { + "objectType": "IndexField_PGSQL", + "name": "repo_id", + "collation": "", + "opClass": "int8_ops", + "opClassSchema": "pg_catalog", + "order": "ASC", + "nullSort": "NULLS LAST", + "oldName": "repo_id", + "collationSchema": "" + }, + { + "objectType": "IndexField_PGSQL", + "name": "data_collection_date", + "collation": "", + "opClass": "timestamp_ops", + "opClassSchema": "pg_catalog", + "order": "ASC", + "nullSort": "NULLS LAST", + "oldName": "data_collection_date", + "collationSchema": "" + } + ] + } + ], + "rules": [], + "primaryKey": { + "objectType": "PrimaryKey_PGSQL", + "name": "pull_requests_pkey", + "fields": [ + "pull_request_id" + ], + "fillFactor": -1, + "indexTablespace": "", + "comment": "", + "isDeferrable": false, + "isDeferred": false, + "oldName": "pull_requests_pkey" + }, + "foreignKeys": [ + { + "objectType": "ForeignKey_PGSQL", + "name": "fk_pr_contribs", + "fields": [ + "pr_augur_contributor_id" + ], + "referenceSchema": "augur_data", + "referenceTable": "contributors", + "referenceFields": [ + "cntrb_id" + ], + "onDelete": "RESTRICT", + "onUpdate": "CASCADE", + "comment": "", + "isMatchFull": false, + "isDeferrable": false, + "isDeferred": false, + "sourceCardinality": "ZeroOrManyRelationship", + "targetCardinality": "ZeroOrOneRelationship", + "oldName": "fk_pr_contribs" + }, + { + "objectType": "ForeignKey_PGSQL", + "name": "fk_pull_requests_repo_1", + "fields": [ + "repo_id" + ], + "referenceSchema": "augur_data", + "referenceTable": "repo", + "referenceFields": [ + "repo_id" + ], + "onDelete": "CASCADE", + "onUpdate": "CASCADE", + "comment": "", + "isMatchFull": false, + "isDeferrable": false, + "isDeferred": false, + "sourceCardinality": "ZeroOrManyRelationship", + "targetCardinality": "ZeroOrOneRelationship", + "oldName": "fk_pull_requests_repo_1" + } + ], + "uniques": [], + "checks": [], + "excludes": [], + "triggers": [], + "partitionKeys": [], + "partitions": [] + }, + { + "objectType": "TableNormal_PGSQL", + "name": "releases", + "comment": "", + "tablespace": "", + "isUnlogged": false, + "owner": "augur", + "inheritFromTables": [], + "hasOIDs": false, + "fillFactor": -1, + "oldName": "releases", + "oid": 15487976, + "rows": 21, + "isInheritTables": false, + "cluster": "", + "ACL": "", + "isPartition": false, + "partitioningStrategy": "None", + "partitionOfSchema": "", + "partitionOfTable": "", + "partitionListValues": [], + "partitionRangeFromValues": [], + "partitionRangeToValues": [], + "foreignServer": "", + "foreignOptionDisplay": "", + "fields": [ + { + "objectType": "TableField_PGSQL", + "name": "release_id", + "type": "char", + "length": 64, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": false, + "defaultType": "Others", + "defaultValue": "nextval('augur_data.releases_release_id_seq'::regclass)", + "comment": "", + "oldName": "release_id", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 1, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "repo_id", + "type": "int8", + "length": 64, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": false, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "repo_id", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 2, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "release_name", + "type": "varchar", + "length": 255, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "release_name", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 3, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "release_description", + "type": "varchar", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "release_description", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 4, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "release_author", + "type": "varchar", + "length": 255, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "release_author", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 5, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "release_created_at", + "type": "timestamp", + "length": 6, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "release_created_at", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 6, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "release_published_at", + "type": "timestamp", + "length": 6, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "release_published_at", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 7, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "release_updated_at", + "type": "timestamp", + "length": 6, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "release_updated_at", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 8, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "release_is_draft", + "type": "bool", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "release_is_draft", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 9, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "release_is_prerelease", + "type": "bool", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "release_is_prerelease", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 10, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "release_tag_name", + "type": "varchar", + "length": 255, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "release_tag_name", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 11, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "release_url", + "type": "varchar", + "length": 255, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "release_url", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 12, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "tool_source", + "type": "varchar", + "length": 255, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "tool_source", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 13, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "tool_version", + "type": "varchar", + "length": 255, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "tool_version", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 14, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "data_source", + "type": "varchar", + "length": 255, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "data_source", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 15, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "data_collection_date", + "type": "timestamp", + "length": 6, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "Others", + "defaultValue": "CURRENT_TIMESTAMP", + "comment": "", + "oldName": "data_collection_date", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 16, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "tag_only", + "type": "bool", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "tag_only", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 17, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + } + ], + "indexes": [], + "rules": [], + "primaryKey": { + "objectType": "PrimaryKey_PGSQL", + "name": "releases_pkey", + "fields": [ + "release_id" + ], + "fillFactor": -1, + "indexTablespace": "", + "comment": "", + "isDeferrable": false, + "isDeferred": false, + "oldName": "releases_pkey" + }, + "foreignKeys": [ + { + "objectType": "ForeignKey_PGSQL", + "name": "fk_releases_repo_1", + "fields": [ + "repo_id" + ], + "referenceSchema": "augur_data", + "referenceTable": "repo", + "referenceFields": [ + "repo_id" + ], + "onDelete": "NO ACTION", + "onUpdate": "NO ACTION", + "comment": "", + "isMatchFull": false, + "isDeferrable": false, + "isDeferred": false, + "sourceCardinality": "ZeroOrManyRelationship", + "targetCardinality": "OneAndOnlyOneRelationship", + "oldName": "fk_releases_repo_1" + } + ], + "uniques": [], + "checks": [], + "excludes": [], + "triggers": [], + "partitionKeys": [], + "partitions": [] + }, + { + "objectType": "TableNormal_PGSQL", + "name": "repo", + "comment": "This table is a combination of the columns in Facade’s repo table and GHTorrent’s projects table. ", + "tablespace": "", + "isUnlogged": false, + "owner": "augur", + "inheritFromTables": [], + "hasOIDs": false, + "fillFactor": -1, + "oldName": "repo", + "oid": 15486733, + "rows": 2, + "isInheritTables": false, + "cluster": "", + "ACL": "", + "isPartition": false, + "partitioningStrategy": "None", + "partitionOfSchema": "", + "partitionOfTable": "", + "partitionListValues": [], + "partitionRangeFromValues": [], + "partitionRangeToValues": [], + "foreignServer": "", + "foreignOptionDisplay": "", + "fields": [ + { + "objectType": "TableField_PGSQL", + "name": "repo_id", + "type": "int8", + "length": 64, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": false, + "defaultType": "Others", + "defaultValue": "nextval('augur_data.repo_repo_id_seq'::regclass)", + "comment": "", + "oldName": "repo_id", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 1, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "repo_group_id", + "type": "int8", + "length": 64, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": false, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "repo_group_id", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 2, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "repo_git", + "type": "varchar", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": false, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "repo_git", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 3, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "repo_path", + "type": "varchar", + "length": 256, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "Others", + "defaultValue": "'NULL'::character varying", + "comment": "", + "oldName": "repo_path", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 4, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "repo_name", + "type": "varchar", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "Others", + "defaultValue": "'NULL'::character varying", + "comment": "", + "oldName": "repo_name", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 5, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "repo_added", + "type": "timestamp", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": false, + "defaultType": "Others", + "defaultValue": "CURRENT_TIMESTAMP", + "comment": "", + "oldName": "repo_added", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 6, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "repo_status", + "type": "varchar", + "length": 32, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": false, + "defaultType": "Others", + "defaultValue": "'New'::character varying", + "comment": "", + "oldName": "repo_status", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 7, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "repo_type", + "type": "varchar", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "Others", + "defaultValue": "''::character varying", + "comment": "This field is intended to indicate if the repository is the \"main instance\" of a repository in cases where implementations choose to add the same repository to more than one repository group. In cases where the repository group is of rg_type Github Organization then this repo_type should be \"primary\". In other cases the repo_type should probably be \"user created\". We made this a varchar in order to hold open the possibility that there are additional repo_types we have not thought about. ", + "oldName": "repo_type", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 8, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "url", + "type": "varchar", + "length": 255, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "url", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 9, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": 0, + "identityMaximum": 0, + "hasNoIdentityMaxValue": 0, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "owner_id", + "type": "int4", + "length": 32, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "owner_id", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 10, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": 0, + "identityMaximum": 0, + "hasNoIdentityMaxValue": true, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "description", + "type": "varchar", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "description", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 11, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "primary_language", + "type": "varchar", + "length": 255, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "primary_language", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 12, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "created_at", + "type": "varchar", + "length": 255, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "created_at", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 13, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "forked_from", + "type": "varchar", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "forked_from", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 14, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "updated_at", + "type": "timestamp", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "updated_at", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 15, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "tool_source", + "type": "varchar", + "length": 255, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "tool_source", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 16, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "tool_version", + "type": "varchar", + "length": 255, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "tool_version", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 17, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "data_source", + "type": "varchar", + "length": 255, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "data_source", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 18, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "data_collection_date", + "type": "timestamp", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "data_collection_date", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 19, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "repo_archived", + "type": "int4", + "length": 32, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "repo_archived", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 20, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "repo_archived_date_collected", + "type": "timestamptz", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "repo_archived_date_collected", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 21, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + } + ], + "indexes": [ + { + "objectType": "Index_PGSQL", + "name": "forked", + "comment": "", + "isClustered": false, + "isConcurrently": false, + "isUnique": false, + "fastUpdate": "", + "buffering": "", + "fillFactor": -1, + "method": "BTree", + "tableSpaceName": "", + "constraint": "", + "oldName": "forked", + "oid": 15487986, + "owner": "augur", + "brinPagesPerRange": -1, + "ginPendingListLimit": -1, + "tableName": "repo", + "size": "16", + "fields": [ + { + "objectType": "IndexField_PGSQL", + "name": "forked_from", + "collation": "default", + "opClass": "text_ops", + "opClassSchema": "pg_catalog", + "order": "ASC", + "nullSort": "NULLS LAST", + "oldName": "forked_from", + "collationSchema": "pg_catalog" + } + ] + }, + { + "objectType": "Index_PGSQL", + "name": "repo_idx_repo_id_repo_namex", + "comment": "", + "isClustered": false, + "isConcurrently": false, + "isUnique": false, + "fastUpdate": "", + "buffering": "", + "fillFactor": -1, + "method": "BTree", + "tableSpaceName": "", + "constraint": "", + "oldName": "repo_idx_repo_id_repo_namex", + "oid": 15488443, + "owner": "augur", + "brinPagesPerRange": -1, + "ginPendingListLimit": -1, + "tableName": "repo", + "size": "16", + "fields": [ + { + "objectType": "IndexField_PGSQL", + "name": "repo_id", + "collation": "", + "opClass": "int8_ops", + "opClassSchema": "pg_catalog", + "order": "ASC", + "nullSort": "NULLS LAST", + "oldName": "repo_id", + "collationSchema": "" + }, + { + "objectType": "IndexField_PGSQL", + "name": "repo_name", + "collation": "default", + "opClass": "text_ops", + "opClassSchema": "pg_catalog", + "order": "ASC", + "nullSort": "NULLS LAST", + "oldName": "repo_name", + "collationSchema": "pg_catalog" + } + ] + }, + { + "objectType": "Index_PGSQL", + "name": "repogitindexrep", + "comment": "", + "isClustered": false, + "isConcurrently": false, + "isUnique": false, + "fastUpdate": "", + "buffering": "", + "fillFactor": -1, + "method": "BTree", + "tableSpaceName": "", + "constraint": "", + "oldName": "repogitindexrep", + "oid": 15487895, + "owner": "augur", + "brinPagesPerRange": -1, + "ginPendingListLimit": -1, + "tableName": "repo", + "size": "16", + "fields": [ + { + "objectType": "IndexField_PGSQL", + "name": "repo_git", + "collation": "default", + "opClass": "text_ops", + "opClassSchema": "pg_catalog", + "order": "ASC", + "nullSort": "NULLS LAST", + "oldName": "repo_git", + "collationSchema": "pg_catalog" + } + ] + }, + { + "objectType": "Index_PGSQL", + "name": "reponameindex", + "comment": "", + "isClustered": false, + "isConcurrently": false, + "isUnique": false, + "fastUpdate": "", + "buffering": "", + "fillFactor": -1, + "method": "Hash", + "tableSpaceName": "", + "constraint": "", + "oldName": "reponameindex", + "oid": 15487897, + "owner": "augur", + "brinPagesPerRange": -1, + "ginPendingListLimit": -1, + "tableName": "repo", + "size": "32", + "fields": [ + { + "objectType": "IndexField_PGSQL", + "name": "repo_name", + "collation": "default", + "opClass": "text_ops", + "opClassSchema": "pg_catalog", + "order": "ASC", + "nullSort": "NULLS LAST", + "oldName": "repo_name", + "collationSchema": "pg_catalog" + } + ] + }, + { + "objectType": "Index_PGSQL", + "name": "reponameindexbtree", + "comment": "", + "isClustered": false, + "isConcurrently": false, + "isUnique": false, + "fastUpdate": "", + "buffering": "", + "fillFactor": -1, + "method": "BTree", + "tableSpaceName": "", + "constraint": "", + "oldName": "reponameindexbtree", + "oid": 15487898, + "owner": "augur", + "brinPagesPerRange": -1, + "ginPendingListLimit": -1, + "tableName": "repo", + "size": "16", + "fields": [ + { + "objectType": "IndexField_PGSQL", + "name": "repo_name", + "collation": "default", + "opClass": "text_ops", + "opClassSchema": "pg_catalog", + "order": "ASC", + "nullSort": "NULLS LAST", + "oldName": "repo_name", + "collationSchema": "pg_catalog" + } + ] + }, + { + "objectType": "Index_PGSQL", + "name": "rggrouponrepoindex", + "comment": "", + "isClustered": false, + "isConcurrently": false, + "isUnique": false, + "fastUpdate": "", + "buffering": "", + "fillFactor": -1, + "method": "BTree", + "tableSpaceName": "", + "constraint": "", + "oldName": "rggrouponrepoindex", + "oid": 15487885, + "owner": "augur", + "brinPagesPerRange": -1, + "ginPendingListLimit": -1, + "tableName": "repo", + "size": "16", + "fields": [ + { + "objectType": "IndexField_PGSQL", + "name": "repo_group_id", + "collation": "", + "opClass": "int8_ops", + "opClassSchema": "pg_catalog", + "order": "ASC", + "nullSort": "NULLS LAST", + "oldName": "repo_group_id", + "collationSchema": "" + } + ] + }, + { + "objectType": "Index_PGSQL", + "name": "therepo", + "comment": "", + "isClustered": false, + "isConcurrently": false, + "isUnique": true, + "fastUpdate": "", + "buffering": "", + "fillFactor": -1, + "method": "BTree", + "tableSpaceName": "", + "constraint": "", + "oldName": "therepo", + "oid": 15487008, + "owner": "augur", + "brinPagesPerRange": -1, + "ginPendingListLimit": -1, + "tableName": "repo", + "size": "16", + "fields": [ + { + "objectType": "IndexField_PGSQL", + "name": "repo_id", + "collation": "", + "opClass": "int8_ops", + "opClassSchema": "pg_catalog", + "order": "ASC", + "nullSort": "NULLS LAST", + "oldName": "repo_id", + "collationSchema": "" + } + ] + } + ], + "rules": [], + "primaryKey": { + "objectType": "PrimaryKey_PGSQL", + "name": "repounique", + "fields": [ + "repo_id" + ], + "fillFactor": -1, + "indexTablespace": "", + "comment": "", + "isDeferrable": false, + "isDeferred": false, + "oldName": "repounique" + }, + "foreignKeys": [ + { + "objectType": "ForeignKey_PGSQL", + "name": "fk_repo_repo_groups_1", + "fields": [ + "repo_group_id" + ], + "referenceSchema": "augur_data", + "referenceTable": "repo_groups", + "referenceFields": [ + "repo_group_id" + ], + "onDelete": "NO ACTION", + "onUpdate": "NO ACTION", + "comment": "Repo_groups cardinality set to one and only one because, although in theory there could be more than one repo group for a repo, this might create dependencies in hosted situation that we do not want to live with. ", + "isMatchFull": false, + "isDeferrable": false, + "isDeferred": false, + "sourceCardinality": "ZeroOrManyRelationship", + "targetCardinality": "OneAndOnlyOneRelationship", + "oldName": "fk_repo_repo_groups_1" + } + ], + "uniques": [], + "checks": [], + "excludes": [], + "triggers": [], + "partitionKeys": [], + "partitions": [] + }, + { + "objectType": "TableNormal_PGSQL", + "name": "repo_badging", + "comment": "This will be collected from the LF’s Badging API\nhttps://bestpractices.coreinfrastructure.org/projects.json?pq=https%3A%2F%2Fgithub.com%2Fchaoss%2Faugur\n", + "tablespace": "", + "isUnlogged": false, + "owner": "augur", + "inheritFromTables": [], + "hasOIDs": false, + "fillFactor": -1, + "oldName": "repo_badging", + "oid": 15486744, + "rows": 21, + "isInheritTables": false, + "cluster": "", + "ACL": "", + "isPartition": false, + "partitioningStrategy": "None", + "partitionOfSchema": "", + "partitionOfTable": "", + "partitionListValues": [], + "partitionRangeFromValues": [], + "partitionRangeToValues": [], + "foreignServer": "", + "foreignOptionDisplay": "", + "fields": [ + { + "objectType": "TableField_PGSQL", + "name": "badge_collection_id", + "type": "int8", + "length": 64, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": false, + "defaultType": "Others", + "defaultValue": "nextval('augur_data.repo_badging_badge_collection_id_seq'::regclass)", + "comment": "", + "oldName": "badge_collection_id", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 1, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "repo_id", + "type": "int8", + "length": 64, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "repo_id", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 2, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "created_at", + "type": "timestamp", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "Others", + "defaultValue": "CURRENT_TIMESTAMP", + "comment": "", + "oldName": "created_at", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 137, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "tool_source", + "type": "varchar", + "length": 255, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "tool_source", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 288, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "tool_version", + "type": "varchar", + "length": 255, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "tool_version", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 289, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "data_source", + "type": "varchar", + "length": 255, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "data_source", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 290, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "data_collection_date", + "type": "timestamp", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "Others", + "defaultValue": "CURRENT_TIMESTAMP", + "comment": "", + "oldName": "data_collection_date", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 291, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "data", + "type": "jsonb", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "data", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 292, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + } + ], + "indexes": [], + "rules": [], + "primaryKey": { + "objectType": "PrimaryKey_PGSQL", + "name": "repo_badging_pkey", + "fields": [ + "badge_collection_id" + ], + "fillFactor": -1, + "indexTablespace": "", + "comment": "", + "isDeferrable": false, + "isDeferred": false, + "oldName": "repo_badging_pkey" + }, + "foreignKeys": [ + { + "objectType": "ForeignKey_PGSQL", + "name": "fk_repo_badging_repo_1", + "fields": [ + "repo_id" + ], + "referenceSchema": "augur_data", + "referenceTable": "repo", + "referenceFields": [ + "repo_id" + ], + "onDelete": "NO ACTION", + "onUpdate": "NO ACTION", + "comment": "", + "isMatchFull": false, + "isDeferrable": false, + "isDeferred": false, + "sourceCardinality": "ZeroOrManyRelationship", + "targetCardinality": "ZeroOrOneRelationship", + "oldName": "fk_repo_badging_repo_1" + } + ], + "uniques": [], + "checks": [], + "excludes": [], + "triggers": [], + "partitionKeys": [], + "partitions": [] + }, + { + "objectType": "TableNormal_PGSQL", + "name": "repo_cluster_messages", + "comment": "", + "tablespace": "", + "isUnlogged": false, + "owner": "augur", + "inheritFromTables": [], + "hasOIDs": false, + "fillFactor": -1, + "oldName": "repo_cluster_messages", + "oid": 15488025, + "rows": 0, + "isInheritTables": false, + "cluster": "", + "ACL": "", + "isPartition": false, + "partitioningStrategy": "None", + "partitionOfSchema": "", + "partitionOfTable": "", + "partitionListValues": [], + "partitionRangeFromValues": [], + "partitionRangeToValues": [], + "foreignServer": "", + "foreignOptionDisplay": "", + "fields": [ + { + "objectType": "TableField_PGSQL", + "name": "msg_cluster_id", + "type": "int8", + "length": 64, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": false, + "defaultType": "Others", + "defaultValue": "nextval('augur_data.repo_cluster_messages_msg_cluster_id_seq'::regclass)", + "comment": "", + "oldName": "msg_cluster_id", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 1, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "repo_id", + "type": "int8", + "length": 64, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "repo_id", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 2, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "cluster_content", + "type": "int4", + "length": 32, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "cluster_content", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 3, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "cluster_mechanism", + "type": "int4", + "length": 32, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "cluster_mechanism", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 4, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "tool_source", + "type": "varchar", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "tool_source", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 5, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "tool_version", + "type": "varchar", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "tool_version", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 6, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "data_source", + "type": "varchar", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "data_source", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 7, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "data_collection_date", + "type": "timestamp", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "Others", + "defaultValue": "CURRENT_TIMESTAMP", + "comment": "", + "oldName": "data_collection_date", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 8, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + } + ], + "indexes": [], + "rules": [], + "primaryKey": { + "objectType": "PrimaryKey_PGSQL", + "name": "repo_cluster_messages_pkey", + "fields": [ + "msg_cluster_id" + ], + "fillFactor": -1, + "indexTablespace": "", + "comment": "", + "isDeferrable": false, + "isDeferred": false, + "oldName": "repo_cluster_messages_pkey" + }, + "foreignKeys": [ + { + "objectType": "ForeignKey_PGSQL", + "name": "fk_repo_cluster_messages_repo_1", + "fields": [ + "repo_id" + ], + "referenceSchema": "augur_data", + "referenceTable": "repo", + "referenceFields": [ + "repo_id" + ], + "onDelete": "NO ACTION", + "onUpdate": "NO ACTION", + "comment": "", + "isMatchFull": false, + "isDeferrable": false, + "isDeferred": false, + "sourceCardinality": "ZeroOrManyRelationship", + "targetCardinality": "ZeroOrOneRelationship", + "oldName": "fk_repo_cluster_messages_repo_1" + } + ], + "uniques": [], + "checks": [], + "excludes": [], + "triggers": [], + "partitionKeys": [], + "partitions": [] + }, + { + "objectType": "TableNormal_PGSQL", + "name": "repo_dependencies", + "comment": "Contains the dependencies for a repo.", + "tablespace": "", + "isUnlogged": false, + "owner": "augur", + "inheritFromTables": [], + "hasOIDs": false, + "fillFactor": -1, + "oldName": "repo_dependencies", + "oid": 15488515, + "rows": 0, + "isInheritTables": false, + "cluster": "", + "ACL": "", + "isPartition": false, + "partitioningStrategy": "None", + "partitionOfSchema": "", + "partitionOfTable": "", + "partitionListValues": [], + "partitionRangeFromValues": [], + "partitionRangeToValues": [], + "foreignServer": "", + "foreignOptionDisplay": "", + "fields": [ + { + "objectType": "TableField_PGSQL", + "name": "repo_dependencies_id", + "type": "int8", + "length": 64, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": false, + "defaultType": "Others", + "defaultValue": "nextval('augur_data.repo_dependencies_repo_dependencies_id_seq'::regclass)", + "comment": "", + "oldName": "repo_dependencies_id", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 1, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "repo_id", + "type": "int8", + "length": 64, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "Forign key for repo id. ", + "oldName": "repo_id", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 2, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "dep_name", + "type": "varchar", + "length": 255, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "Name of the dependancy found in project. ", + "oldName": "dep_name", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 3, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "dep_count", + "type": "int4", + "length": 32, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "Number of times the dependancy was found. ", + "oldName": "dep_count", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 4, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "dep_language", + "type": "varchar", + "length": 255, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "Language of the dependancy. ", + "oldName": "dep_language", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 5, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "tool_source", + "type": "varchar", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "tool_source", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 6, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "tool_version", + "type": "varchar", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "tool_version", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 7, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "data_source", + "type": "varchar", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "data_source", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 8, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "data_collection_date", + "type": "timestamp", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "Others", + "defaultValue": "CURRENT_TIMESTAMP", + "comment": "", + "oldName": "data_collection_date", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 9, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + } + ], + "indexes": [], + "rules": [], + "primaryKey": { + "objectType": "PrimaryKey_PGSQL", + "name": "repo_dependencies_pkey", + "fields": [ + "repo_dependencies_id" + ], + "fillFactor": -1, + "indexTablespace": "", + "comment": "", + "isDeferrable": false, + "isDeferred": false, + "oldName": "repo_dependencies_pkey" + }, + "foreignKeys": [ + { + "objectType": "ForeignKey_PGSQL", + "name": "repo_id", + "fields": [ + "repo_id" + ], + "referenceSchema": "augur_data", + "referenceTable": "repo", + "referenceFields": [ + "repo_id" + ], + "onDelete": "NO ACTION", + "onUpdate": "NO ACTION", + "comment": "", + "isMatchFull": false, + "isDeferrable": false, + "isDeferred": false, + "sourceCardinality": "ZeroOrManyRelationship", + "targetCardinality": "ZeroOrOneRelationship", + "oldName": "repo_id" + } + ], + "uniques": [], + "checks": [], + "excludes": [], + "triggers": [], + "partitionKeys": [], + "partitions": [] + }, + { + "objectType": "TableNormal_PGSQL", + "name": "repo_deps_scorecard", + "comment": "", + "tablespace": "", + "isUnlogged": false, + "owner": "augur", + "inheritFromTables": [], + "hasOIDs": false, + "fillFactor": -1, + "oldName": "repo_deps_scorecard", + "oid": 15488566, + "rows": 0, + "isInheritTables": false, + "cluster": "", + "ACL": "", + "isPartition": false, + "partitioningStrategy": "None", + "partitionOfSchema": "", + "partitionOfTable": "", + "partitionListValues": [], + "partitionRangeFromValues": [], + "partitionRangeToValues": [], + "foreignServer": "", + "foreignOptionDisplay": "", + "fields": [ + { + "objectType": "TableField_PGSQL", + "name": "repo_deps_scorecard_id", + "type": "int8", + "length": 64, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": false, + "defaultType": "Others", + "defaultValue": "nextval('augur_data.repo_deps_scorecard_repo_deps_scorecard_id_seq1'::regclass)", + "comment": "", + "oldName": "repo_deps_scorecard_id", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 1, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "repo_id", + "type": "int8", + "length": 64, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "repo_id", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 2, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "name", + "type": "varchar", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "name", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 3, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "status", + "type": "varchar", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "status", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 4, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "score", + "type": "varchar", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "score", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 5, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "tool_source", + "type": "varchar", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "tool_source", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 6, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "tool_version", + "type": "varchar", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "tool_version", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 7, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "data_source", + "type": "varchar", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "data_source", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 8, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "data_collection_date", + "type": "timestamp", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "Others", + "defaultValue": "CURRENT_TIMESTAMP", + "comment": "", + "oldName": "data_collection_date", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 9, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + } + ], + "indexes": [], + "rules": [], + "primaryKey": { + "objectType": "PrimaryKey_PGSQL", + "name": "repo_deps_scorecard_pkey1", + "fields": [ + "repo_deps_scorecard_id" + ], + "fillFactor": -1, + "indexTablespace": "", + "comment": "", + "isDeferrable": false, + "isDeferred": false, + "oldName": "repo_deps_scorecard_pkey1" + }, + "foreignKeys": [ + { + "objectType": "ForeignKey_PGSQL", + "name": "repo_id", + "fields": [ + "repo_id" + ], + "referenceSchema": "augur_data", + "referenceTable": "repo", + "referenceFields": [ + "repo_id" + ], + "onDelete": "NO ACTION", + "onUpdate": "NO ACTION", + "comment": "", + "isMatchFull": false, + "isDeferrable": false, + "isDeferred": false, + "sourceCardinality": "ZeroOrManyRelationship", + "targetCardinality": "ZeroOrOneRelationship", + "oldName": "repo_id" + } + ], + "uniques": [], + "checks": [], + "excludes": [], + "triggers": [], + "partitionKeys": [], + "partitions": [] + }, + { + "objectType": "TableNormal_PGSQL", + "name": "repo_group_insights", + "comment": "This table is output from an analytical worker inside of Augur. It runs through the different metrics on a REPOSITORY_GROUP and identifies the five to ten most “interesting” metrics as defined by some kind of delta or other factor. The algorithm is going to evolve. \n\nWorker Design Notes: The idea is that the \"insight worker\" will scan through a bunch of active metrics or \"synthetic metrics\" to list the most important insights. ", + "tablespace": "", + "isUnlogged": false, + "owner": "augur", + "inheritFromTables": [], + "hasOIDs": false, + "fillFactor": -1, + "oldName": "repo_group_insights", + "oid": 15486759, + "rows": 0, + "isInheritTables": false, + "cluster": "", + "ACL": "", + "isPartition": false, + "partitioningStrategy": "None", + "partitionOfSchema": "", + "partitionOfTable": "", + "partitionListValues": [], + "partitionRangeFromValues": [], + "partitionRangeToValues": [], + "foreignServer": "", + "foreignOptionDisplay": "", + "fields": [ + { + "objectType": "TableField_PGSQL", + "name": "rgi_id", + "type": "int8", + "length": 64, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": false, + "defaultType": "Others", + "defaultValue": "nextval('augur_data.repo_group_insights_rgi_id_seq'::regclass)", + "comment": "", + "oldName": "rgi_id", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 1, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "repo_group_id", + "type": "int8", + "length": 64, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "repo_group_id", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 2, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "rgi_metric", + "type": "varchar", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "rgi_metric", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 3, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "rgi_value", + "type": "varchar", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "rgi_value", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 4, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "cms_id", + "type": "int8", + "length": 64, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "cms_id", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 5, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "rgi_fresh", + "type": "bool", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "false if the date is before the statistic that triggered the insight, true if after. This allows us to automatically display only \"fresh insights\" and avoid displaying \"stale insights\". The insight worker will populate this table. ", + "oldName": "rgi_fresh", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 6, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "tool_source", + "type": "varchar", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "tool_source", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 7, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "tool_version", + "type": "varchar", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "tool_version", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 8, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "data_source", + "type": "varchar", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "data_source", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 9, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "data_collection_date", + "type": "timestamp", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "Others", + "defaultValue": "CURRENT_TIMESTAMP", + "comment": "", + "oldName": "data_collection_date", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 10, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + } + ], + "indexes": [], + "rules": [], + "primaryKey": { + "objectType": "PrimaryKey_PGSQL", + "name": "repo_group_insights_pkey", + "fields": [ + "rgi_id" + ], + "fillFactor": -1, + "indexTablespace": "", + "comment": "", + "isDeferrable": false, + "isDeferred": false, + "oldName": "repo_group_insights_pkey" + }, + "foreignKeys": [ + { + "objectType": "ForeignKey_PGSQL", + "name": "fk_repo_group_insights_repo_groups_1", + "fields": [ + "repo_group_id" + ], + "referenceSchema": "augur_data", + "referenceTable": "repo_groups", + "referenceFields": [ + "repo_group_id" + ], + "onDelete": "NO ACTION", + "onUpdate": "NO ACTION", + "comment": "", + "isMatchFull": false, + "isDeferrable": false, + "isDeferred": false, + "sourceCardinality": "ZeroOrManyRelationship", + "targetCardinality": "ZeroOrOneRelationship", + "oldName": "fk_repo_group_insights_repo_groups_1" + } + ], + "uniques": [], + "checks": [], + "excludes": [], + "triggers": [], + "partitionKeys": [], + "partitions": [] + }, + { + "objectType": "TableNormal_PGSQL", + "name": "repo_groups", + "comment": "rg_type is intended to be either a GitHub Organization or a User Created Repo Group. ", + "tablespace": "", + "isUnlogged": false, + "owner": "augur", + "inheritFromTables": [], + "hasOIDs": false, + "fillFactor": -1, + "oldName": "repo_groups", + "oid": 15486767, + "rows": 1, + "isInheritTables": false, + "cluster": "", + "ACL": "", + "isPartition": false, + "partitioningStrategy": "None", + "partitionOfSchema": "", + "partitionOfTable": "", + "partitionListValues": [], + "partitionRangeFromValues": [], + "partitionRangeToValues": [], + "foreignServer": "", + "foreignOptionDisplay": "", + "fields": [ + { + "objectType": "TableField_PGSQL", + "name": "repo_group_id", + "type": "int8", + "length": 64, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": false, + "defaultType": "Others", + "defaultValue": "nextval('augur_data.repo_groups_repo_group_id_seq'::regclass)", + "comment": "", + "oldName": "repo_group_id", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 1, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "rg_name", + "type": "varchar", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": false, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "rg_name", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 2, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "rg_description", + "type": "varchar", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "Others", + "defaultValue": "'NULL'::character varying", + "comment": "", + "oldName": "rg_description", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 3, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "rg_website", + "type": "varchar", + "length": 128, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "Others", + "defaultValue": "'NULL'::character varying", + "comment": "", + "oldName": "rg_website", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 4, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "rg_recache", + "type": "int2", + "length": 16, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "Others", + "defaultValue": "1", + "comment": "", + "oldName": "rg_recache", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 5, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "rg_last_modified", + "type": "timestamp", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": false, + "defaultType": "Others", + "defaultValue": "CURRENT_TIMESTAMP", + "comment": "", + "oldName": "rg_last_modified", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 6, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "rg_type", + "type": "varchar", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "rg_type", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 7, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "tool_source", + "type": "varchar", + "length": 255, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "tool_source", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 8, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "tool_version", + "type": "varchar", + "length": 255, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "tool_version", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 9, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "data_source", + "type": "varchar", + "length": 255, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "data_source", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 10, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "data_collection_date", + "type": "timestamp", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "data_collection_date", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 11, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + } + ], + "indexes": [ + { + "objectType": "Index_PGSQL", + "name": "rgidm", + "comment": "", + "isClustered": false, + "isConcurrently": false, + "isUnique": true, + "fastUpdate": "", + "buffering": "", + "fillFactor": -1, + "method": "BTree", + "tableSpaceName": "", + "constraint": "", + "oldName": "rgidm", + "oid": 15487015, + "owner": "augur", + "brinPagesPerRange": -1, + "ginPendingListLimit": -1, + "tableName": "repo_groups", + "size": "16", + "fields": [ + { + "objectType": "IndexField_PGSQL", + "name": "repo_group_id", + "collation": "", + "opClass": "int8_ops", + "opClassSchema": "pg_catalog", + "order": "ASC", + "nullSort": "NULLS LAST", + "oldName": "repo_group_id", + "collationSchema": "" + } + ] + }, + { + "objectType": "Index_PGSQL", + "name": "rgnameindex", + "comment": "", + "isClustered": false, + "isConcurrently": false, + "isUnique": false, + "fastUpdate": "", + "buffering": "", + "fillFactor": -1, + "method": "BTree", + "tableSpaceName": "", + "constraint": "", + "oldName": "rgnameindex", + "oid": 15487899, + "owner": "augur", + "brinPagesPerRange": -1, + "ginPendingListLimit": -1, + "tableName": "repo_groups", + "size": "16", + "fields": [ + { + "objectType": "IndexField_PGSQL", + "name": "rg_name", + "collation": "default", + "opClass": "text_ops", + "opClassSchema": "pg_catalog", + "order": "ASC", + "nullSort": "NULLS LAST", + "oldName": "rg_name", + "collationSchema": "pg_catalog" + } + ] + } + ], + "rules": [], + "primaryKey": { + "objectType": "PrimaryKey_PGSQL", + "name": "rgid", + "fields": [ + "repo_group_id" + ], + "fillFactor": -1, + "indexTablespace": "", + "comment": "", + "isDeferrable": false, + "isDeferred": false, + "oldName": "rgid" + }, + "foreignKeys": [], + "uniques": [], + "checks": [], + "excludes": [], + "triggers": [], + "partitionKeys": [], + "partitions": [] + }, + { + "objectType": "TableNormal_PGSQL", + "name": "repo_groups_list_serve", + "comment": "", + "tablespace": "", + "isUnlogged": false, + "owner": "augur", + "inheritFromTables": [], + "hasOIDs": false, + "fillFactor": -1, + "oldName": "repo_groups_list_serve", + "oid": 15486778, + "rows": 0, + "isInheritTables": false, + "cluster": "", + "ACL": "", + "isPartition": false, + "partitioningStrategy": "None", + "partitionOfSchema": "", + "partitionOfTable": "", + "partitionListValues": [], + "partitionRangeFromValues": [], + "partitionRangeToValues": [], + "foreignServer": "", + "foreignOptionDisplay": "", + "fields": [ + { + "objectType": "TableField_PGSQL", + "name": "rgls_id", + "type": "int8", + "length": 64, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": false, + "defaultType": "Others", + "defaultValue": "nextval('augur_data.repo_groups_list_serve_rgls_id_seq'::regclass)", + "comment": "", + "oldName": "rgls_id", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 1, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "repo_group_id", + "type": "int8", + "length": 64, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": false, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "repo_group_id", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 2, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "rgls_name", + "type": "varchar", + "length": 255, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "rgls_name", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 3, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "rgls_description", + "type": "varchar", + "length": 3000, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "rgls_description", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 4, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "rgls_sponsor", + "type": "varchar", + "length": 255, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "rgls_sponsor", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 5, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "rgls_email", + "type": "varchar", + "length": 255, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "rgls_email", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 6, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "tool_source", + "type": "varchar", + "length": 255, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "tool_source", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 7, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "tool_version", + "type": "varchar", + "length": 255, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "tool_version", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 8, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "data_source", + "type": "varchar", + "length": 255, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "data_source", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 9, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "data_collection_date", + "type": "timestamp", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "data_collection_date", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 10, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + } + ], + "indexes": [ + { + "objectType": "Index_PGSQL", + "name": "lister", + "comment": "", + "isClustered": false, + "isConcurrently": false, + "isUnique": true, + "fastUpdate": "", + "buffering": "", + "fillFactor": -1, + "method": "BTree", + "tableSpaceName": "", + "constraint": "", + "oldName": "lister", + "oid": 15487018, + "owner": "augur", + "brinPagesPerRange": -1, + "ginPendingListLimit": -1, + "tableName": "repo_groups_list_serve", + "size": "8", + "fields": [ + { + "objectType": "IndexField_PGSQL", + "name": "rgls_id", + "collation": "", + "opClass": "int8_ops", + "opClassSchema": "pg_catalog", + "order": "ASC", + "nullSort": "NULLS LAST", + "oldName": "rgls_id", + "collationSchema": "" + }, + { + "objectType": "IndexField_PGSQL", + "name": "repo_group_id", + "collation": "", + "opClass": "int8_ops", + "opClassSchema": "pg_catalog", + "order": "ASC", + "nullSort": "NULLS LAST", + "oldName": "repo_group_id", + "collationSchema": "" + } + ] + } + ], + "rules": [], + "primaryKey": { + "objectType": "PrimaryKey_PGSQL", + "name": "repo_groups_list_serve_pkey", + "fields": [ + "rgls_id" + ], + "fillFactor": -1, + "indexTablespace": "", + "comment": "", + "isDeferrable": false, + "isDeferred": false, + "oldName": "repo_groups_list_serve_pkey" + }, + "foreignKeys": [ + { + "objectType": "ForeignKey_PGSQL", + "name": "fk_repo_groups_list_serve_repo_groups_1", + "fields": [ + "repo_group_id" + ], + "referenceSchema": "augur_data", + "referenceTable": "repo_groups", + "referenceFields": [ + "repo_group_id" + ], + "onDelete": "NO ACTION", + "onUpdate": "NO ACTION", + "comment": "", + "isMatchFull": false, + "isDeferrable": false, + "isDeferred": false, + "sourceCardinality": "ZeroOrManyRelationship", + "targetCardinality": "OneAndOnlyOneRelationship", + "oldName": "fk_repo_groups_list_serve_repo_groups_1" + } + ], + "uniques": [ + { + "objectType": "Unique_PGSQL", + "name": "rglistserve", + "fields": [ + "rgls_id", + "repo_group_id" + ], + "fillFactor": -1, + "indexTablespace": "", + "comment": "", + "isDeferrable": false, + "isDeferred": false, + "oldName": "rglistserve" + } + ], + "checks": [], + "excludes": [], + "triggers": [], + "partitionKeys": [], + "partitions": [] + }, + { + "objectType": "TableNormal_PGSQL", + "name": "repo_info", + "comment": "", + "tablespace": "", + "isUnlogged": false, + "owner": "augur", + "inheritFromTables": [], + "hasOIDs": false, + "fillFactor": -1, + "oldName": "repo_info", + "oid": 15486785, + "rows": 42, + "isInheritTables": false, + "cluster": "", + "ACL": "", + "isPartition": false, + "partitioningStrategy": "None", + "partitionOfSchema": "", + "partitionOfTable": "", + "partitionListValues": [], + "partitionRangeFromValues": [], + "partitionRangeToValues": [], + "foreignServer": "", + "foreignOptionDisplay": "", + "fields": [ + { + "objectType": "TableField_PGSQL", + "name": "repo_info_id", + "type": "int8", + "length": 64, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": false, + "defaultType": "Others", + "defaultValue": "nextval('augur_data.repo_info_repo_info_id_seq'::regclass)", + "comment": "", + "oldName": "repo_info_id", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 1, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "repo_id", + "type": "int8", + "length": 64, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": false, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "repo_id", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 2, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "last_updated", + "type": "timestamp", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "Others", + "defaultValue": "NULL::timestamp without time zone", + "comment": "", + "oldName": "last_updated", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 3, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "issues_enabled", + "type": "varchar", + "length": 255, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "Others", + "defaultValue": "NULL::character varying", + "comment": "", + "oldName": "issues_enabled", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 4, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "open_issues", + "type": "int4", + "length": 32, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "open_issues", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 5, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "pull_requests_enabled", + "type": "varchar", + "length": 255, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "Others", + "defaultValue": "NULL::character varying", + "comment": "", + "oldName": "pull_requests_enabled", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 6, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "wiki_enabled", + "type": "varchar", + "length": 255, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "Others", + "defaultValue": "NULL::character varying", + "comment": "", + "oldName": "wiki_enabled", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 7, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "pages_enabled", + "type": "varchar", + "length": 255, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "Others", + "defaultValue": "NULL::character varying", + "comment": "", + "oldName": "pages_enabled", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 8, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "fork_count", + "type": "int4", + "length": 32, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "fork_count", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 9, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "default_branch", + "type": "varchar", + "length": 255, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "Others", + "defaultValue": "NULL::character varying", + "comment": "", + "oldName": "default_branch", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 10, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "watchers_count", + "type": "int4", + "length": 32, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "watchers_count", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 11, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "UUID", + "type": "int4", + "length": 32, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "UUID", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 12, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "license", + "type": "varchar", + "length": 255, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "Others", + "defaultValue": "NULL::character varying", + "comment": "", + "oldName": "license", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 13, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "stars_count", + "type": "int4", + "length": 32, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "stars_count", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 14, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "committers_count", + "type": "int4", + "length": 32, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "committers_count", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 15, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "issue_contributors_count", + "type": "varchar", + "length": 255, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "issue_contributors_count", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 16, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "changelog_file", + "type": "varchar", + "length": 255, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "Others", + "defaultValue": "NULL::character varying", + "comment": "", + "oldName": "changelog_file", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 17, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "contributing_file", + "type": "varchar", + "length": 255, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "Others", + "defaultValue": "NULL::character varying", + "comment": "", + "oldName": "contributing_file", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 18, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "license_file", + "type": "varchar", + "length": 255, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "Others", + "defaultValue": "NULL::character varying", + "comment": "", + "oldName": "license_file", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 19, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "code_of_conduct_file", + "type": "varchar", + "length": 255, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "Others", + "defaultValue": "NULL::character varying", + "comment": "", + "oldName": "code_of_conduct_file", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 20, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "security_issue_file", + "type": "varchar", + "length": 255, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "Others", + "defaultValue": "NULL::character varying", + "comment": "", + "oldName": "security_issue_file", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 21, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "security_audit_file", + "type": "varchar", + "length": 255, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "Others", + "defaultValue": "NULL::character varying", + "comment": "", + "oldName": "security_audit_file", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 22, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "status", + "type": "varchar", + "length": 255, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "Others", + "defaultValue": "NULL::character varying", + "comment": "", + "oldName": "status", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 23, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "keywords", + "type": "varchar", + "length": 255, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "Others", + "defaultValue": "NULL::character varying", + "comment": "", + "oldName": "keywords", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 24, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "tool_source", + "type": "varchar", + "length": 255, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "tool_source", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 25, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "tool_version", + "type": "varchar", + "length": 255, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "tool_version", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 26, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "data_source", + "type": "varchar", + "length": 255, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "data_source", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 27, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "data_collection_date", + "type": "timestamp", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "Others", + "defaultValue": "CURRENT_TIMESTAMP", + "comment": "", + "oldName": "data_collection_date", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 28, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "commit_count", + "type": "int8", + "length": 64, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "commit_count", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 29, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "issues_count", + "type": "int8", + "length": 64, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "issues_count", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 30, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "issues_closed", + "type": "int8", + "length": 64, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "issues_closed", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 31, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "pull_request_count", + "type": "int8", + "length": 64, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "pull_request_count", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 32, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "pull_requests_open", + "type": "int8", + "length": 64, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "pull_requests_open", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 33, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "pull_requests_closed", + "type": "int8", + "length": 64, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "pull_requests_closed", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 34, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "pull_requests_merged", + "type": "int8", + "length": 64, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "pull_requests_merged", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 35, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + } + ], + "indexes": [ + { + "objectType": "Index_PGSQL", + "name": "repo_info_idx_repo_id_data_date_1x", + "comment": "", + "isClustered": false, + "isConcurrently": false, + "isUnique": false, + "fastUpdate": "", + "buffering": "", + "fillFactor": -1, + "method": "BTree", + "tableSpaceName": "", + "constraint": "", + "oldName": "repo_info_idx_repo_id_data_date_1x", + "oid": 15488445, + "owner": "augur", + "brinPagesPerRange": -1, + "ginPendingListLimit": -1, + "tableName": "repo_info", + "size": "16", + "fields": [ + { + "objectType": "IndexField_PGSQL", + "name": "repo_id", + "collation": "", + "opClass": "int8_ops", + "opClassSchema": "pg_catalog", + "order": "ASC", + "nullSort": "NULLS LAST", + "oldName": "repo_id", + "collationSchema": "" + }, + { + "objectType": "IndexField_PGSQL", + "name": "data_collection_date", + "collation": "", + "opClass": "timestamp_ops", + "opClassSchema": "pg_catalog", + "order": "ASC", + "nullSort": "NULLS LAST", + "oldName": "data_collection_date", + "collationSchema": "" + } + ] + }, + { + "objectType": "Index_PGSQL", + "name": "repo_info_idx_repo_id_data_datex", + "comment": "", + "isClustered": false, + "isConcurrently": false, + "isUnique": false, + "fastUpdate": "", + "buffering": "", + "fillFactor": -1, + "method": "BTree", + "tableSpaceName": "", + "constraint": "", + "oldName": "repo_info_idx_repo_id_data_datex", + "oid": 15488444, + "owner": "augur", + "brinPagesPerRange": -1, + "ginPendingListLimit": -1, + "tableName": "repo_info", + "size": "16", + "fields": [ + { + "objectType": "IndexField_PGSQL", + "name": "repo_id", + "collation": "", + "opClass": "int8_ops", + "opClassSchema": "pg_catalog", + "order": "ASC", + "nullSort": "NULLS LAST", + "oldName": "repo_id", + "collationSchema": "" + }, + { + "objectType": "IndexField_PGSQL", + "name": "data_collection_date", + "collation": "", + "opClass": "timestamp_ops", + "opClassSchema": "pg_catalog", + "order": "ASC", + "nullSort": "NULLS LAST", + "oldName": "data_collection_date", + "collationSchema": "" + } + ] + } + ], + "rules": [], + "primaryKey": { + "objectType": "PrimaryKey_PGSQL", + "name": "repo_info_pkey", + "fields": [ + "repo_info_id" + ], + "fillFactor": -1, + "indexTablespace": "", + "comment": "", + "isDeferrable": false, + "isDeferred": false, + "oldName": "repo_info_pkey" + }, + "foreignKeys": [ + { + "objectType": "ForeignKey_PGSQL", + "name": "fk_repo_info_repo_1", + "fields": [ + "repo_id" + ], + "referenceSchema": "augur_data", + "referenceTable": "repo", + "referenceFields": [ + "repo_id" + ], + "onDelete": "NO ACTION", + "onUpdate": "NO ACTION", + "comment": "", + "isMatchFull": false, + "isDeferrable": false, + "isDeferred": false, + "sourceCardinality": "ZeroOrManyRelationship", + "targetCardinality": "OneAndOnlyOneRelationship", + "oldName": "fk_repo_info_repo_1" + } + ], + "uniques": [], + "checks": [], + "excludes": [], + "triggers": [], + "partitionKeys": [], + "partitions": [] + }, + { + "objectType": "TableNormal_PGSQL", + "name": "repo_insights", + "comment": "This table is output from an analytical worker inside of Augur. It runs through the different metrics on a repository and identifies the five to ten most “interesting” metrics as defined by some kind of delta or other factor. The algorithm is going to evolve. \n\nWorker Design Notes: The idea is that the \"insight worker\" will scan through a bunch of active metrics or \"synthetic metrics\" to list the most important insights. ", + "tablespace": "", + "isUnlogged": false, + "owner": "augur", + "inheritFromTables": [], + "hasOIDs": false, + "fillFactor": -1, + "oldName": "repo_insights", + "oid": 15486807, + "rows": 39, + "isInheritTables": false, + "cluster": "", + "ACL": "", + "isPartition": false, + "partitioningStrategy": "None", + "partitionOfSchema": "", + "partitionOfTable": "", + "partitionListValues": [], + "partitionRangeFromValues": [], + "partitionRangeToValues": [], + "foreignServer": "", + "foreignOptionDisplay": "", + "fields": [ + { + "objectType": "TableField_PGSQL", + "name": "ri_id", + "type": "int8", + "length": 64, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": false, + "defaultType": "Others", + "defaultValue": "nextval('augur_data.repo_insights_ri_id_seq'::regclass)", + "comment": "", + "oldName": "ri_id", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 1, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "repo_id", + "type": "int8", + "length": 64, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "repo_id", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 2, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "ri_metric", + "type": "varchar", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "ri_metric", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 3, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "ri_value", + "type": "varchar", + "length": 255, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "ri_value", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 4, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "ri_date", + "type": "timestamp", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "ri_date", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 5, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "ri_fresh", + "type": "bool", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "false if the date is before the statistic that triggered the insight, true if after. This allows us to automatically display only \"fresh insights\" and avoid displaying \"stale insights\". The insight worker will populate this table. ", + "oldName": "ri_fresh", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 6, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "tool_source", + "type": "varchar", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "tool_source", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 7, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "tool_version", + "type": "varchar", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "tool_version", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 8, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "data_source", + "type": "varchar", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "data_source", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 9, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "data_collection_date", + "type": "timestamp", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "Others", + "defaultValue": "CURRENT_TIMESTAMP", + "comment": "", + "oldName": "data_collection_date", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 10, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "ri_score", + "type": "numeric", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "ri_score", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 11, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "ri_field", + "type": "varchar", + "length": 255, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "ri_field", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 12, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "ri_detection_method", + "type": "varchar", + "length": 255, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "ri_detection_method", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 13, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + } + ], + "indexes": [], + "rules": [], + "primaryKey": { + "objectType": "PrimaryKey_PGSQL", + "name": "repo_insights_pkey", + "fields": [ + "ri_id" + ], + "fillFactor": -1, + "indexTablespace": "", + "comment": "", + "isDeferrable": false, + "isDeferred": false, + "oldName": "repo_insights_pkey" + }, + "foreignKeys": [ + { + "objectType": "ForeignKey_PGSQL", + "name": "fk_repo_insights_repo_1", + "fields": [ + "repo_id" + ], + "referenceSchema": "augur_data", + "referenceTable": "repo", + "referenceFields": [ + "repo_id" + ], + "onDelete": "NO ACTION", + "onUpdate": "NO ACTION", + "comment": "", + "isMatchFull": false, + "isDeferrable": false, + "isDeferred": false, + "sourceCardinality": "ZeroOrManyRelationship", + "targetCardinality": "ZeroOrOneRelationship", + "oldName": "fk_repo_insights_repo_1" + } + ], + "uniques": [], + "checks": [], + "excludes": [], + "triggers": [], + "partitionKeys": [], + "partitions": [] + }, + { + "objectType": "TableNormal_PGSQL", + "name": "repo_insights_records", + "comment": "", + "tablespace": "", + "isUnlogged": false, + "owner": "augur", + "inheritFromTables": [], + "hasOIDs": false, + "fillFactor": -1, + "oldName": "repo_insights_records", + "oid": 15486815, + "rows": 3, + "isInheritTables": false, + "cluster": "", + "ACL": "", + "isPartition": false, + "partitioningStrategy": "None", + "partitionOfSchema": "", + "partitionOfTable": "", + "partitionListValues": [], + "partitionRangeFromValues": [], + "partitionRangeToValues": [], + "foreignServer": "", + "foreignOptionDisplay": "", + "fields": [ + { + "objectType": "TableField_PGSQL", + "name": "ri_id", + "type": "int8", + "length": 64, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": false, + "defaultType": "Others", + "defaultValue": "nextval('augur_data.repo_insights_records_ri_id_seq'::regclass)", + "comment": "Primary key. ", + "oldName": "ri_id", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 1, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "repo_id", + "type": "int8", + "length": 64, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "Refers to repo table primary key. Will have a foreign key", + "oldName": "repo_id", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 2, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "ri_metric", + "type": "varchar", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "The metric endpoint", + "oldName": "ri_metric", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 3, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "ri_field", + "type": "varchar", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "The field in the metric endpoint", + "oldName": "ri_field", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 4, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "ri_value", + "type": "varchar", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "The value of the endpoint in ri_field", + "oldName": "ri_value", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 5, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "ri_date", + "type": "timestamp", + "length": 6, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "The date the insight is for; in other words, some anomaly occurred on this date. ", + "oldName": "ri_date", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 6, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "ri_score", + "type": "float8", + "length": 53, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "A Score, derived from the algorithm used. ", + "oldName": "ri_score", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 7, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "ri_detection_method", + "type": "varchar", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "A confidence interval or other expression of the type of threshold and the value of a threshold met in order for it to be \"an insight\". Example. \"95% confidence interval\". ", + "oldName": "ri_detection_method", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 8, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "tool_source", + "type": "varchar", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "Standard Augur Metadata", + "oldName": "tool_source", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 9, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "tool_version", + "type": "varchar", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "Standard Augur Metadata", + "oldName": "tool_version", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 10, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "data_source", + "type": "varchar", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "Standard Augur Metadata", + "oldName": "data_source", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 11, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "data_collection_date", + "type": "timestamp", + "length": 6, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "Others", + "defaultValue": "CURRENT_TIMESTAMP", + "comment": "Standard Augur Metadata", + "oldName": "data_collection_date", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 12, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + } + ], + "indexes": [ + { + "objectType": "Index_PGSQL", + "name": "dater", + "comment": "", + "isClustered": false, + "isConcurrently": false, + "isUnique": false, + "fastUpdate": "", + "buffering": "", + "fillFactor": -1, + "method": "BTree", + "tableSpaceName": "", + "constraint": "", + "oldName": "dater", + "oid": 15487027, + "owner": "augur", + "brinPagesPerRange": -1, + "ginPendingListLimit": -1, + "tableName": "repo_insights_records", + "size": "16", + "fields": [ + { + "objectType": "IndexField_PGSQL", + "name": "ri_date", + "collation": "", + "opClass": "timestamp_ops", + "opClassSchema": "pg_catalog", + "order": "ASC", + "nullSort": "NULLS LAST", + "oldName": "ri_date", + "collationSchema": "" + } + ] + } + ], + "rules": [], + "primaryKey": { + "objectType": "PrimaryKey_PGSQL", + "name": "repo_insights_records_pkey", + "fields": [ + "ri_id" + ], + "fillFactor": -1, + "indexTablespace": "", + "comment": "", + "isDeferrable": false, + "isDeferred": false, + "oldName": "repo_insights_records_pkey" + }, + "foreignKeys": [ + { + "objectType": "ForeignKey_PGSQL", + "name": "repo_id_ref", + "fields": [ + "repo_id" + ], + "referenceSchema": "augur_data", + "referenceTable": "repo", + "referenceFields": [ + "repo_id" + ], + "onDelete": "SET NULL", + "onUpdate": "CASCADE", + "comment": "", + "isMatchFull": false, + "isDeferrable": false, + "isDeferred": false, + "sourceCardinality": "ZeroOrManyRelationship", + "targetCardinality": "ZeroOrOneRelationship", + "oldName": "repo_id_ref" + } + ], + "uniques": [], + "checks": [], + "excludes": [], + "triggers": [], + "partitionKeys": [], + "partitions": [] + }, + { + "objectType": "TableNormal_PGSQL", + "name": "repo_labor", + "comment": "repo_labor is a derivative of tables used to store scc code and complexity counting statistics that are inputs to labor analysis, which are components of CHAOSS value metric calculations. ", + "tablespace": "", + "isUnlogged": false, + "owner": "augur", + "inheritFromTables": [], + "hasOIDs": false, + "fillFactor": -1, + "oldName": "repo_labor", + "oid": 15486823, + "rows": 0, + "isInheritTables": false, + "cluster": "", + "ACL": "", + "isPartition": false, + "partitioningStrategy": "None", + "partitionOfSchema": "", + "partitionOfTable": "", + "partitionListValues": [], + "partitionRangeFromValues": [], + "partitionRangeToValues": [], + "foreignServer": "", + "foreignOptionDisplay": "", + "fields": [ + { + "objectType": "TableField_PGSQL", + "name": "repo_labor_id", + "type": "int8", + "length": 64, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": false, + "defaultType": "Others", + "defaultValue": "nextval('augur_data.repo_labor_repo_labor_id_seq'::regclass)", + "comment": "", + "oldName": "repo_labor_id", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 1, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "repo_id", + "type": "int8", + "length": 64, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "repo_id", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 2, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "repo_clone_date", + "type": "timestamp", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "repo_clone_date", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 3, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "rl_analysis_date", + "type": "timestamp", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "rl_analysis_date", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 4, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "programming_language", + "type": "varchar", + "length": 255, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "Others", + "defaultValue": "NULL::character varying", + "comment": "", + "oldName": "programming_language", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 5, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "file_path", + "type": "varchar", + "length": 500, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "Others", + "defaultValue": "NULL::character varying", + "comment": "", + "oldName": "file_path", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 6, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "file_name", + "type": "varchar", + "length": 255, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "Others", + "defaultValue": "NULL::character varying", + "comment": "", + "oldName": "file_name", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 7, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "total_lines", + "type": "int4", + "length": 32, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "total_lines", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 8, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "code_lines", + "type": "int4", + "length": 32, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "code_lines", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 9, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "comment_lines", + "type": "int4", + "length": 32, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "comment_lines", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 10, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "blank_lines", + "type": "int4", + "length": 32, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "blank_lines", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 11, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "code_complexity", + "type": "int4", + "length": 32, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "code_complexity", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 12, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "repo_url", + "type": "varchar", + "length": 500, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "Others", + "defaultValue": "NULL::character varying", + "comment": "This is a convenience column to simplify analysis against external datasets", + "oldName": "repo_url", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 13, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "tool_source", + "type": "varchar", + "length": 255, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "tool_source", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 14, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "tool_version", + "type": "varchar", + "length": 255, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "tool_version", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 15, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "data_source", + "type": "varchar", + "length": 255, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "data_source", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 16, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "data_collection_date", + "type": "timestamp", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "data_collection_date", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 17, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + } + ], + "indexes": [], + "rules": [], + "primaryKey": { + "objectType": "PrimaryKey_PGSQL", + "name": "repo_labor_pkey", + "fields": [ + "repo_labor_id" + ], + "fillFactor": -1, + "indexTablespace": "", + "comment": "", + "isDeferrable": false, + "isDeferred": false, + "oldName": "repo_labor_pkey" + }, + "foreignKeys": [ + { + "objectType": "ForeignKey_PGSQL", + "name": "fk_repo_labor_repo_1", + "fields": [ + "repo_id" + ], + "referenceSchema": "augur_data", + "referenceTable": "repo", + "referenceFields": [ + "repo_id" + ], + "onDelete": "NO ACTION", + "onUpdate": "NO ACTION", + "comment": "", + "isMatchFull": false, + "isDeferrable": false, + "isDeferred": false, + "sourceCardinality": "ZeroOrManyRelationship", + "targetCardinality": "ZeroOrOneRelationship", + "oldName": "fk_repo_labor_repo_1" + } + ], + "uniques": [], + "checks": [], + "excludes": [], + "triggers": [], + "partitionKeys": [], + "partitions": [] + }, + { + "objectType": "TableNormal_PGSQL", + "name": "repo_meta", + "comment": "Project Languages", + "tablespace": "", + "isUnlogged": false, + "owner": "augur", + "inheritFromTables": [], + "hasOIDs": false, + "fillFactor": -1, + "oldName": "repo_meta", + "oid": 15486834, + "rows": 0, + "isInheritTables": false, + "cluster": "", + "ACL": "", + "isPartition": false, + "partitioningStrategy": "None", + "partitionOfSchema": "", + "partitionOfTable": "", + "partitionListValues": [], + "partitionRangeFromValues": [], + "partitionRangeToValues": [], + "foreignServer": "", + "foreignOptionDisplay": "", + "fields": [ + { + "objectType": "TableField_PGSQL", + "name": "repo_id", + "type": "int8", + "length": 64, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": false, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "repo_id", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 1, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "rmeta_id", + "type": "int8", + "length": 64, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": false, + "defaultType": "Others", + "defaultValue": "nextval('augur_data.repo_meta_rmeta_id_seq'::regclass)", + "comment": "", + "oldName": "rmeta_id", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 2, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "rmeta_name", + "type": "varchar", + "length": 255, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "rmeta_name", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 3, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "rmeta_value", + "type": "varchar", + "length": 255, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "Others", + "defaultValue": "0", + "comment": "", + "oldName": "rmeta_value", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 4, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "tool_source", + "type": "varchar", + "length": 255, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "tool_source", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 5, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "tool_version", + "type": "varchar", + "length": 255, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "tool_version", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 6, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "data_source", + "type": "varchar", + "length": 255, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "data_source", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 7, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "data_collection_date", + "type": "timestamp", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "data_collection_date", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 8, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + } + ], + "indexes": [], + "rules": [], + "primaryKey": { + "objectType": "PrimaryKey_PGSQL", + "name": "repo_meta_pkey", + "fields": [ + "rmeta_id", + "repo_id" + ], + "fillFactor": -1, + "indexTablespace": "", + "comment": "", + "isDeferrable": false, + "isDeferred": false, + "oldName": "repo_meta_pkey" + }, + "foreignKeys": [ + { + "objectType": "ForeignKey_PGSQL", + "name": "fk_repo_meta_repo_1", + "fields": [ + "repo_id" + ], + "referenceSchema": "augur_data", + "referenceTable": "repo", + "referenceFields": [ + "repo_id" + ], + "onDelete": "NO ACTION", + "onUpdate": "NO ACTION", + "comment": "", + "isMatchFull": false, + "isDeferrable": false, + "isDeferred": false, + "sourceCardinality": "ZeroOrManyRelationship", + "targetCardinality": "OneAndOnlyOneRelationship", + "oldName": "fk_repo_meta_repo_1" + } + ], + "uniques": [], + "checks": [], + "excludes": [], + "triggers": [], + "partitionKeys": [], + "partitions": [] + }, + { + "objectType": "TableNormal_PGSQL", + "name": "repo_sbom_scans", + "comment": "", + "tablespace": "", + "isUnlogged": false, + "owner": "augur", + "inheritFromTables": [], + "hasOIDs": false, + "fillFactor": -1, + "oldName": "repo_sbom_scans", + "oid": 15486842, + "rows": 0, + "isInheritTables": false, + "cluster": "", + "ACL": "", + "isPartition": false, + "partitioningStrategy": "None", + "partitionOfSchema": "", + "partitionOfTable": "", + "partitionListValues": [], + "partitionRangeFromValues": [], + "partitionRangeToValues": [], + "foreignServer": "", + "foreignOptionDisplay": "", + "fields": [ + { + "objectType": "TableField_PGSQL", + "name": "rsb_id", + "type": "int8", + "length": 64, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": false, + "defaultType": "Others", + "defaultValue": "nextval('augur_data.repo_sbom_scans_rsb_id_seq'::regclass)", + "comment": "", + "oldName": "rsb_id", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 1, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "repo_id", + "type": "int4", + "length": 32, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "repo_id", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 2, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "sbom_scan", + "type": "json", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "sbom_scan", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 3, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + } + ], + "indexes": [], + "rules": [], + "primaryKey": { + "objectType": "PrimaryKey_PGSQL", + "name": "repo_sbom_scans_pkey", + "fields": [ + "rsb_id" + ], + "fillFactor": -1, + "indexTablespace": "", + "comment": "", + "isDeferrable": false, + "isDeferred": false, + "oldName": "repo_sbom_scans_pkey" + }, + "foreignKeys": [ + { + "objectType": "ForeignKey_PGSQL", + "name": "repo_linker_sbom", + "fields": [ + "repo_id" + ], + "referenceSchema": "augur_data", + "referenceTable": "repo", + "referenceFields": [ + "repo_id" + ], + "onDelete": "CASCADE", + "onUpdate": "CASCADE", + "comment": "", + "isMatchFull": false, + "isDeferrable": false, + "isDeferred": false, + "sourceCardinality": "ZeroOrManyRelationship", + "targetCardinality": "ZeroOrOneRelationship", + "oldName": "repo_linker_sbom" + } + ], + "uniques": [], + "checks": [], + "excludes": [], + "triggers": [], + "partitionKeys": [], + "partitions": [] + }, + { + "objectType": "TableNormal_PGSQL", + "name": "repo_stats", + "comment": "Project Watchers", + "tablespace": "", + "isUnlogged": false, + "owner": "augur", + "inheritFromTables": [], + "hasOIDs": false, + "fillFactor": -1, + "oldName": "repo_stats", + "oid": 15486849, + "rows": 0, + "isInheritTables": false, + "cluster": "", + "ACL": "", + "isPartition": false, + "partitioningStrategy": "None", + "partitionOfSchema": "", + "partitionOfTable": "", + "partitionListValues": [], + "partitionRangeFromValues": [], + "partitionRangeToValues": [], + "foreignServer": "", + "foreignOptionDisplay": "", + "fields": [ + { + "objectType": "TableField_PGSQL", + "name": "repo_id", + "type": "int8", + "length": 64, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": false, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "repo_id", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 1, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "rstat_id", + "type": "int8", + "length": 64, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": false, + "defaultType": "Others", + "defaultValue": "nextval('augur_data.repo_stats_rstat_id_seq'::regclass)", + "comment": "", + "oldName": "rstat_id", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 2, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "rstat_name", + "type": "varchar", + "length": 400, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "rstat_name", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 3, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "rstat_value", + "type": "int8", + "length": 64, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "rstat_value", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 4, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "tool_source", + "type": "varchar", + "length": 255, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "tool_source", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 5, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "tool_version", + "type": "varchar", + "length": 255, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "tool_version", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 6, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "data_source", + "type": "varchar", + "length": 255, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "data_source", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 7, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "data_collection_date", + "type": "timestamp", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "data_collection_date", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 8, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + } + ], + "indexes": [], + "rules": [], + "primaryKey": { + "objectType": "PrimaryKey_PGSQL", + "name": "repo_stats_pkey", + "fields": [ + "rstat_id", + "repo_id" + ], + "fillFactor": -1, + "indexTablespace": "", + "comment": "", + "isDeferrable": false, + "isDeferred": false, + "oldName": "repo_stats_pkey" + }, + "foreignKeys": [ + { + "objectType": "ForeignKey_PGSQL", + "name": "fk_repo_stats_repo_1", + "fields": [ + "repo_id" + ], + "referenceSchema": "augur_data", + "referenceTable": "repo", + "referenceFields": [ + "repo_id" + ], + "onDelete": "NO ACTION", + "onUpdate": "NO ACTION", + "comment": "", + "isMatchFull": false, + "isDeferrable": false, + "isDeferred": false, + "sourceCardinality": "ZeroOrManyRelationship", + "targetCardinality": "OneAndOnlyOneRelationship", + "oldName": "fk_repo_stats_repo_1" + } + ], + "uniques": [], + "checks": [], + "excludes": [], + "triggers": [], + "partitionKeys": [], + "partitions": [] + }, + { + "objectType": "TableNormal_PGSQL", + "name": "repo_test_coverage", + "comment": "", + "tablespace": "", + "isUnlogged": false, + "owner": "augur", + "inheritFromTables": [], + "hasOIDs": false, + "fillFactor": -1, + "oldName": "repo_test_coverage", + "oid": 15486856, + "rows": 0, + "isInheritTables": false, + "cluster": "", + "ACL": "", + "isPartition": false, + "partitioningStrategy": "None", + "partitionOfSchema": "", + "partitionOfTable": "", + "partitionListValues": [], + "partitionRangeFromValues": [], + "partitionRangeToValues": [], + "foreignServer": "", + "foreignOptionDisplay": "", + "fields": [ + { + "objectType": "TableField_PGSQL", + "name": "repo_id", + "type": "int8", + "length": 64, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": false, + "defaultType": "Others", + "defaultValue": "nextval('augur_data.repo_test_coverage_repo_id_seq'::regclass)", + "comment": "", + "oldName": "repo_id", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 1, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "repo_clone_date", + "type": "timestamp", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "repo_clone_date", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 2, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "rtc_analysis_date", + "type": "timestamp", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "rtc_analysis_date", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 3, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "programming_language", + "type": "varchar", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "programming_language", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 4, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "file_path", + "type": "varchar", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "file_path", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 5, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "file_name", + "type": "varchar", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "file_name", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 6, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "testing_tool", + "type": "varchar", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "testing_tool", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 7, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "file_statement_count", + "type": "int8", + "length": 64, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "file_statement_count", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 8, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "file_subroutine_count", + "type": "int8", + "length": 64, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "file_subroutine_count", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 9, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "file_statements_tested", + "type": "int8", + "length": 64, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "file_statements_tested", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 10, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "file_subroutines_tested", + "type": "int8", + "length": 64, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "file_subroutines_tested", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 11, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "tool_source", + "type": "varchar", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "tool_source", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 12, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "tool_version", + "type": "varchar", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "tool_version", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 13, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "data_source", + "type": "varchar", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "data_source", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 14, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "data_collection_date", + "type": "timestamp", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "Others", + "defaultValue": "CURRENT_TIMESTAMP", + "comment": "", + "oldName": "data_collection_date", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 15, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + } + ], + "indexes": [], + "rules": [], + "primaryKey": { + "objectType": "PrimaryKey_PGSQL", + "name": "repo_test_coverage_pkey", + "fields": [ + "repo_id" + ], + "fillFactor": -1, + "indexTablespace": "", + "comment": "", + "isDeferrable": false, + "isDeferred": false, + "oldName": "repo_test_coverage_pkey" + }, + "foreignKeys": [ + { + "objectType": "ForeignKey_PGSQL", + "name": "fk_repo_test_coverage_repo_1", + "fields": [ + "repo_id" + ], + "referenceSchema": "augur_data", + "referenceTable": "repo", + "referenceFields": [ + "repo_id" + ], + "onDelete": "NO ACTION", + "onUpdate": "NO ACTION", + "comment": "", + "isMatchFull": false, + "isDeferrable": false, + "isDeferred": false, + "sourceCardinality": "ZeroOrOneRelationship", + "targetCardinality": "OneAndOnlyOneRelationship", + "oldName": "fk_repo_test_coverage_repo_1" + } + ], + "uniques": [], + "checks": [], + "excludes": [], + "triggers": [], + "partitionKeys": [], + "partitions": [] + }, + { + "objectType": "TableNormal_PGSQL", + "name": "repo_topic", + "comment": "", + "tablespace": "", + "isUnlogged": false, + "owner": "augur", + "inheritFromTables": [], + "hasOIDs": false, + "fillFactor": -1, + "oldName": "repo_topic", + "oid": 15488043, + "rows": 0, + "isInheritTables": false, + "cluster": "", + "ACL": "", + "isPartition": false, + "partitioningStrategy": "None", + "partitionOfSchema": "", + "partitionOfTable": "", + "partitionListValues": [], + "partitionRangeFromValues": [], + "partitionRangeToValues": [], + "foreignServer": "", + "foreignOptionDisplay": "", + "fields": [ + { + "objectType": "TableField_PGSQL", + "name": "repo_topic_id", + "type": "int8", + "length": 64, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": false, + "defaultType": "Others", + "defaultValue": "nextval('augur_data.repo_topic_repo_topic_id_seq'::regclass)", + "comment": "", + "oldName": "repo_topic_id", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 1, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "repo_id", + "type": "int4", + "length": 32, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "repo_id", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 2, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "topic_id", + "type": "int4", + "length": 32, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "topic_id", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 3, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "topic_prob", + "type": "float8", + "length": 53, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "topic_prob", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 4, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "tool_source", + "type": "varchar", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "tool_source", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 5, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "tool_version", + "type": "varchar", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "tool_version", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 6, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "data_source", + "type": "varchar", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "data_source", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 7, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "data_collection_date", + "type": "timestamp", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "Others", + "defaultValue": "CURRENT_TIMESTAMP", + "comment": "", + "oldName": "data_collection_date", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 8, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + } + ], + "indexes": [], + "rules": [], + "primaryKey": { + "objectType": "PrimaryKey_PGSQL", + "name": "repo_topic_pkey", + "fields": [ + "repo_topic_id" + ], + "fillFactor": -1, + "indexTablespace": "", + "comment": "", + "isDeferrable": false, + "isDeferred": false, + "oldName": "repo_topic_pkey" + }, + "foreignKeys": [ + { + "objectType": "ForeignKey_PGSQL", + "name": "fk_repo_topic_repo_1", + "fields": [ + "repo_id" + ], + "referenceSchema": "augur_data", + "referenceTable": "repo", + "referenceFields": [ + "repo_id" + ], + "onDelete": "NO ACTION", + "onUpdate": "NO ACTION", + "comment": "", + "isMatchFull": false, + "isDeferrable": false, + "isDeferred": false, + "sourceCardinality": "ZeroOrManyRelationship", + "targetCardinality": "ZeroOrOneRelationship", + "oldName": "fk_repo_topic_repo_1" + } + ], + "uniques": [], + "checks": [], + "excludes": [], + "triggers": [], + "partitionKeys": [], + "partitions": [] + }, + { + "objectType": "TableNormal_PGSQL", + "name": "repos_fetch_log", + "comment": "", + "tablespace": "", + "isUnlogged": false, + "owner": "augur", + "inheritFromTables": [], + "hasOIDs": false, + "fillFactor": -1, + "oldName": "repos_fetch_log", + "oid": 15486864, + "rows": 97, + "isInheritTables": false, + "cluster": "", + "ACL": "", + "isPartition": false, + "partitioningStrategy": "None", + "partitionOfSchema": "", + "partitionOfTable": "", + "partitionListValues": [], + "partitionRangeFromValues": [], + "partitionRangeToValues": [], + "foreignServer": "", + "foreignOptionDisplay": "", + "fields": [ + { + "objectType": "TableField_PGSQL", + "name": "repos_id", + "type": "int4", + "length": 32, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": false, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "repos_id", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 1, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "status", + "type": "varchar", + "length": 128, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": false, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "status", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 2, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "date", + "type": "timestamp", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": false, + "defaultType": "Others", + "defaultValue": "CURRENT_TIMESTAMP", + "comment": "", + "oldName": "date", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 3, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + } + ], + "indexes": [ + { + "objectType": "Index_PGSQL", + "name": "repos_id,status", + "comment": "", + "isClustered": false, + "isConcurrently": false, + "isUnique": false, + "fastUpdate": "", + "buffering": "", + "fillFactor": -1, + "method": "BTree", + "tableSpaceName": "", + "constraint": "", + "oldName": "repos_id,status", + "oid": 15487040, + "owner": "augur", + "brinPagesPerRange": -1, + "ginPendingListLimit": -1, + "tableName": "repos_fetch_log", + "size": "16", + "fields": [ + { + "objectType": "IndexField_PGSQL", + "name": "repos_id", + "collation": "", + "opClass": "int4_ops", + "opClassSchema": "pg_catalog", + "order": "ASC", + "nullSort": "NULLS LAST", + "oldName": "repos_id", + "collationSchema": "" + }, + { + "objectType": "IndexField_PGSQL", + "name": "status", + "collation": "default", + "opClass": "text_ops", + "opClassSchema": "pg_catalog", + "order": "ASC", + "nullSort": "NULLS LAST", + "oldName": "status", + "collationSchema": "pg_catalog" + } + ] + }, + { + "objectType": "Index_PGSQL", + "name": "repos_id,statusops", + "comment": "", + "isClustered": false, + "isConcurrently": false, + "isUnique": false, + "fastUpdate": "", + "buffering": "", + "fillFactor": -1, + "method": "BTree", + "tableSpaceName": "", + "constraint": "", + "oldName": "repos_id,statusops", + "oid": 15487918, + "owner": "augur", + "brinPagesPerRange": -1, + "ginPendingListLimit": -1, + "tableName": "repos_fetch_log", + "size": "16", + "fields": [ + { + "objectType": "IndexField_PGSQL", + "name": "repos_id", + "collation": "", + "opClass": "int4_ops", + "opClassSchema": "pg_catalog", + "order": "ASC", + "nullSort": "NULLS LAST", + "oldName": "repos_id", + "collationSchema": "" + }, + { + "objectType": "IndexField_PGSQL", + "name": "status", + "collation": "default", + "opClass": "text_ops", + "opClassSchema": "pg_catalog", + "order": "ASC", + "nullSort": "NULLS LAST", + "oldName": "status", + "collationSchema": "pg_catalog" + } + ] + } + ], + "rules": [], + "foreignKeys": [], + "uniques": [], + "checks": [], + "excludes": [], + "triggers": [], + "partitionKeys": [], + "partitions": [] + }, + { + "objectType": "TableNormal_PGSQL", + "name": "settings", + "comment": "", + "tablespace": "", + "isUnlogged": false, + "owner": "augur", + "inheritFromTables": [], + "hasOIDs": false, + "fillFactor": -1, + "oldName": "settings", + "oid": 15486868, + "rows": 13, + "isInheritTables": false, + "cluster": "", + "ACL": "", + "isPartition": false, + "partitioningStrategy": "None", + "partitionOfSchema": "", + "partitionOfTable": "", + "partitionListValues": [], + "partitionRangeFromValues": [], + "partitionRangeToValues": [], + "foreignServer": "", + "foreignOptionDisplay": "", + "fields": [ + { + "objectType": "TableField_PGSQL", + "name": "id", + "type": "int4", + "length": 32, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": false, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "id", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 1, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "setting", + "type": "varchar", + "length": 32, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": false, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "setting", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 2, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "value", + "type": "varchar", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": false, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "value", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 3, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "last_modified", + "type": "timestamp", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": false, + "defaultType": "Others", + "defaultValue": "CURRENT_TIMESTAMP", + "comment": "", + "oldName": "last_modified", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 4, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + } + ], + "indexes": [], + "rules": [], + "primaryKey": { + "objectType": "PrimaryKey_PGSQL", + "name": "settings_pkey", + "fields": [ + "id" + ], + "fillFactor": -1, + "indexTablespace": "", + "comment": "", + "isDeferrable": false, + "isDeferred": false, + "oldName": "settings_pkey" + }, + "foreignKeys": [], + "uniques": [], + "checks": [], + "excludes": [], + "triggers": [], + "partitionKeys": [], + "partitions": [] + }, + { + "objectType": "TableNormal_PGSQL", + "name": "topic_words", + "comment": "", + "tablespace": "", + "isUnlogged": false, + "owner": "augur", + "inheritFromTables": [], + "hasOIDs": false, + "fillFactor": -1, + "oldName": "topic_words", + "oid": 15488053, + "rows": 0, + "isInheritTables": false, + "cluster": "", + "ACL": "", + "isPartition": false, + "partitioningStrategy": "None", + "partitionOfSchema": "", + "partitionOfTable": "", + "partitionListValues": [], + "partitionRangeFromValues": [], + "partitionRangeToValues": [], + "foreignServer": "", + "foreignOptionDisplay": "", + "fields": [ + { + "objectType": "TableField_PGSQL", + "name": "topic_words_id", + "type": "int8", + "length": 64, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": false, + "defaultType": "Others", + "defaultValue": "nextval('augur_data.topic_words_topic_words_id_seq'::regclass)", + "comment": "", + "oldName": "topic_words_id", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 1, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "topic_id", + "type": "int8", + "length": 64, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "topic_id", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 2, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "word", + "type": "varchar", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "word", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 3, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "word_prob", + "type": "float8", + "length": 53, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "word_prob", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 4, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "tool_source", + "type": "varchar", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "tool_source", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 5, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "tool_version", + "type": "varchar", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "tool_version", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 6, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "data_source", + "type": "varchar", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "data_source", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 7, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "data_collection_date", + "type": "timestamp", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "Others", + "defaultValue": "CURRENT_TIMESTAMP", + "comment": "", + "oldName": "data_collection_date", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 8, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + } + ], + "indexes": [], + "rules": [], + "primaryKey": { + "objectType": "PrimaryKey_PGSQL", + "name": "topic_words_pkey", + "fields": [ + "topic_words_id" + ], + "fillFactor": -1, + "indexTablespace": "", + "comment": "", + "isDeferrable": false, + "isDeferred": false, + "oldName": "topic_words_pkey" + }, + "foreignKeys": [], + "uniques": [], + "checks": [], + "excludes": [], + "triggers": [], + "partitionKeys": [], + "partitions": [] + }, + { + "objectType": "TableNormal_PGSQL", + "name": "unknown_cache", + "comment": "", + "tablespace": "", + "isUnlogged": false, + "owner": "augur", + "inheritFromTables": [], + "hasOIDs": false, + "fillFactor": -1, + "oldName": "unknown_cache", + "oid": 15486875, + "rows": 44, + "isInheritTables": false, + "cluster": "", + "ACL": "", + "isPartition": false, + "partitioningStrategy": "None", + "partitionOfSchema": "", + "partitionOfTable": "", + "partitionListValues": [], + "partitionRangeFromValues": [], + "partitionRangeToValues": [], + "foreignServer": "", + "foreignOptionDisplay": "", + "fields": [ + { + "objectType": "TableField_PGSQL", + "name": "type", + "type": "varchar", + "length": 10, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": false, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "type", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 1, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "repo_group_id", + "type": "int4", + "length": 32, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": false, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "repo_group_id", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 2, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "email", + "type": "varchar", + "length": 128, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": false, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "email", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 3, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "domain", + "type": "varchar", + "length": 128, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "Others", + "defaultValue": "'NULL'::character varying", + "comment": "", + "oldName": "domain", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 4, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "added", + "type": "int8", + "length": 64, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": false, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "added", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 5, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "tool_source", + "type": "varchar", + "length": 255, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "tool_source", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 6, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "tool_version", + "type": "varchar", + "length": 255, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "tool_version", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 7, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "data_source", + "type": "varchar", + "length": 255, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "data_source", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 8, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "data_collection_date", + "type": "timestamp", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "Others", + "defaultValue": "CURRENT_TIMESTAMP", + "comment": "", + "oldName": "data_collection_date", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 9, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + } + ], + "indexes": [ + { + "objectType": "Index_PGSQL", + "name": "type,projects_id", + "comment": "", + "isClustered": false, + "isConcurrently": false, + "isUnique": false, + "fastUpdate": "", + "buffering": "", + "fillFactor": -1, + "method": "BTree", + "tableSpaceName": "", + "constraint": "", + "oldName": "type,projects_id", + "oid": 15487043, + "owner": "augur", + "brinPagesPerRange": -1, + "ginPendingListLimit": -1, + "tableName": "unknown_cache", + "size": "16", + "fields": [ + { + "objectType": "IndexField_PGSQL", + "name": "type", + "collation": "default", + "opClass": "text_ops", + "opClassSchema": "pg_catalog", + "order": "ASC", + "nullSort": "NULLS LAST", + "oldName": "type", + "collationSchema": "pg_catalog" + }, + { + "objectType": "IndexField_PGSQL", + "name": "repo_group_id", + "collation": "", + "opClass": "int4_ops", + "opClassSchema": "pg_catalog", + "order": "ASC", + "nullSort": "NULLS LAST", + "oldName": "repo_group_id", + "collationSchema": "" + } + ] + } + ], + "rules": [], + "foreignKeys": [], + "uniques": [], + "checks": [], + "excludes": [], + "triggers": [], + "partitionKeys": [], + "partitions": [] + }, + { + "objectType": "TableNormal_PGSQL", + "name": "utility_log", + "comment": "", + "tablespace": "", + "isUnlogged": false, + "owner": "augur", + "inheritFromTables": [], + "hasOIDs": false, + "fillFactor": -1, + "oldName": "utility_log", + "oid": 15486883, + "rows": 7716, + "isInheritTables": false, + "cluster": "", + "ACL": "", + "isPartition": false, + "partitioningStrategy": "None", + "partitionOfSchema": "", + "partitionOfTable": "", + "partitionListValues": [], + "partitionRangeFromValues": [], + "partitionRangeToValues": [], + "foreignServer": "", + "foreignOptionDisplay": "", + "fields": [ + { + "objectType": "TableField_PGSQL", + "name": "id", + "type": "int8", + "length": 64, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": false, + "defaultType": "Others", + "defaultValue": "nextval('augur_data.utility_log_id_seq1'::regclass)", + "comment": "", + "oldName": "id", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 1, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "level", + "type": "varchar", + "length": 8, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": false, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "level", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 2, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "status", + "type": "varchar", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": false, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "status", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 3, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "attempted", + "type": "timestamp", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": false, + "defaultType": "Others", + "defaultValue": "CURRENT_TIMESTAMP", + "comment": "", + "oldName": "attempted", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 4, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + } + ], + "indexes": [], + "rules": [], + "primaryKey": { + "objectType": "PrimaryKey_PGSQL", + "name": "utility_log_pkey", + "fields": [ + "id" + ], + "fillFactor": -1, + "indexTablespace": "", + "comment": "", + "isDeferrable": false, + "isDeferred": false, + "oldName": "utility_log_pkey" + }, + "foreignKeys": [], + "uniques": [], + "checks": [], + "excludes": [], + "triggers": [], + "partitionKeys": [], + "partitions": [] + }, + { + "objectType": "TableNormal_PGSQL", + "name": "working_commits", + "comment": "", + "tablespace": "", + "isUnlogged": false, + "owner": "augur", + "inheritFromTables": [], + "hasOIDs": false, + "fillFactor": -1, + "oldName": "working_commits", + "oid": 15486891, + "rows": 1, + "isInheritTables": false, + "cluster": "", + "ACL": "", + "isPartition": false, + "partitioningStrategy": "None", + "partitionOfSchema": "", + "partitionOfTable": "", + "partitionListValues": [], + "partitionRangeFromValues": [], + "partitionRangeToValues": [], + "foreignServer": "", + "foreignOptionDisplay": "", + "fields": [ + { + "objectType": "TableField_PGSQL", + "name": "repos_id", + "type": "int4", + "length": 32, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": false, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "repos_id", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 1, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "working_commit", + "type": "varchar", + "length": 40, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "Others", + "defaultValue": "'NULL'::character varying", + "comment": "", + "oldName": "working_commit", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 2, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + } + ], + "indexes": [], + "rules": [], + "foreignKeys": [], + "uniques": [], + "checks": [], + "excludes": [], + "triggers": [], + "partitionKeys": [], + "partitions": [] + } + ], + "views": [] + }, + { + "objectType": "Schema_PGSQL", + "name": "augur_operations", + "comment": "", + "tables": [ + { + "objectType": "TableNormal_PGSQL", + "name": "all", + "comment": "", + "tablespace": "", + "isUnlogged": false, + "owner": "augur", + "inheritFromTables": [], + "hasOIDs": false, + "fillFactor": -1, + "oldName": "all", + "oid": 15487319, + "rows": 0, + "isInheritTables": false, + "cluster": "", + "ACL": "", + "isPartition": false, + "partitioningStrategy": "None", + "partitionOfSchema": "", + "partitionOfTable": "", + "partitionListValues": [], + "partitionRangeFromValues": [], + "partitionRangeToValues": [], + "foreignServer": "", + "foreignOptionDisplay": "", + "fields": [ + { + "objectType": "TableField_PGSQL", + "name": "Name", + "type": "varchar", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "Name", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 1, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "Bytes", + "type": "varchar", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "Bytes", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 2, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": {}, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "Lines", + "type": "varchar", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "Lines", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 3, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "Code", + "type": "varchar", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "Code", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 4, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": {}, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "Comment", + "type": "varchar", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "Comment", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 5, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": {}, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "Blank", + "type": "varchar", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "Blank", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 6, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "Complexity", + "type": "varchar", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "Complexity", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 7, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": {}, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "Count", + "type": "varchar", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "Count", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 8, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "WeightedComplexity", + "type": "varchar", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "WeightedComplexity", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 9, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": {}, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "Files", + "type": "varchar", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "Files", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 10, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": {}, + "isIdentityCycle": false + } + ], + "indexes": [], + "rules": [], + "foreignKeys": [], + "uniques": [], + "checks": [], + "excludes": [], + "triggers": [], + "partitionKeys": [], + "partitions": [] + }, + { + "objectType": "TableNormal_PGSQL", + "name": "augur_settings", + "comment": "Augur settings include the schema version, and the Augur API Key as of 10/25/2020. Future augur settings may be stored in this table, which has the basic structure of a name-value pair. ", + "tablespace": "", + "isUnlogged": false, + "owner": "augur", + "inheritFromTables": [], + "hasOIDs": false, + "fillFactor": -1, + "oldName": "augur_settings", + "oid": 15487810, + "rows": 2, + "isInheritTables": false, + "cluster": "", + "ACL": "", + "isPartition": false, + "partitioningStrategy": "None", + "partitionOfSchema": "", + "partitionOfTable": "", + "partitionListValues": [], + "partitionRangeFromValues": [], + "partitionRangeToValues": [], + "foreignServer": "", + "foreignOptionDisplay": "", + "fields": [ + { + "objectType": "TableField_PGSQL", + "name": "id", + "type": "int8", + "length": 64, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": false, + "defaultType": "Others", + "defaultValue": "nextval('augur_operations.augur_settings_id_seq'::regclass)", + "comment": "", + "oldName": "id", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 1, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "setting", + "type": "varchar", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "setting", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 2, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": {}, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "value", + "type": "varchar", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "value", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 3, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": null, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "last_modified", + "type": "timestamp", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "Others", + "defaultValue": "CURRENT_DATE", + "comment": "", + "oldName": "last_modified", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 4, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": null, + "isIdentityCycle": false + } + ], + "indexes": [], + "rules": [], + "primaryKey": { + "objectType": "PrimaryKey_PGSQL", + "name": "augur_settings_pkey", + "fields": [ + "id" + ], + "fillFactor": -1, + "indexTablespace": "", + "comment": "", + "isDeferrable": false, + "isDeferred": false, + "oldName": "augur_settings_pkey" + }, + "foreignKeys": [], + "uniques": [], + "checks": [], + "excludes": [], + "triggers": [], + "partitionKeys": [], + "partitions": [] + }, + { + "objectType": "TableNormal_PGSQL", + "name": "repos_fetch_log", + "comment": "For future use when we move all working tables to the augur_operations schema. ", + "tablespace": "", + "isUnlogged": false, + "owner": "augur", + "inheritFromTables": [], + "hasOIDs": false, + "fillFactor": -1, + "oldName": "repos_fetch_log", + "oid": 15487859, + "rows": 0, + "isInheritTables": false, + "cluster": "", + "ACL": "", + "isPartition": false, + "partitioningStrategy": "None", + "partitionOfSchema": "", + "partitionOfTable": "", + "partitionListValues": [], + "partitionRangeFromValues": [], + "partitionRangeToValues": [], + "foreignServer": "", + "foreignOptionDisplay": "", + "fields": [ + { + "objectType": "TableField_PGSQL", + "name": "repos_id", + "type": "int4", + "length": 32, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": false, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "repos_id", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 1, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "status", + "type": "varchar", + "length": 128, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": false, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "status", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 2, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "date", + "type": "timestamp", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": false, + "defaultType": "Others", + "defaultValue": "CURRENT_TIMESTAMP", + "comment": "", + "oldName": "date", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 3, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + } + ], + "indexes": [ + { + "objectType": "Index_PGSQL", + "name": "repos_id,statusops", + "comment": "", + "isClustered": false, + "isConcurrently": false, + "isUnique": false, + "fastUpdate": "", + "buffering": "", + "fillFactor": -1, + "method": "BTree", + "tableSpaceName": "", + "constraint": "", + "oldName": "repos_id,statusops", + "oid": 15487863, + "owner": "augur", + "brinPagesPerRange": -1, + "ginPendingListLimit": -1, + "tableName": "repos_fetch_log", + "size": "8", + "fields": [ + { + "objectType": "IndexField_PGSQL", + "name": "repos_id", + "collation": "", + "opClass": "int4_ops", + "opClassSchema": "pg_catalog", + "order": "ASC", + "nullSort": "NULLS LAST", + "oldName": "repos_id", + "collationSchema": "" + }, + { + "objectType": "IndexField_PGSQL", + "name": "status", + "collation": "default", + "opClass": "text_ops", + "opClassSchema": "pg_catalog", + "order": "ASC", + "nullSort": "NULLS LAST", + "oldName": "status", + "collationSchema": "pg_catalog" + } + ] + } + ], + "rules": [], + "foreignKeys": [], + "uniques": [], + "checks": [], + "excludes": [], + "triggers": [], + "partitionKeys": [], + "partitions": [] + }, + { + "objectType": "TableNormal_PGSQL", + "name": "worker_history", + "comment": "This table stores the complete history of job execution, including success and failure. It is useful for troubleshooting. ", + "tablespace": "", + "isUnlogged": false, + "owner": "augur", + "inheritFromTables": [], + "hasOIDs": false, + "fillFactor": -1, + "oldName": "worker_history", + "oid": 15487337, + "rows": 199, + "isInheritTables": false, + "cluster": "", + "ACL": "", + "isPartition": false, + "partitioningStrategy": "None", + "partitionOfSchema": "", + "partitionOfTable": "", + "partitionListValues": [], + "partitionRangeFromValues": [], + "partitionRangeToValues": [], + "foreignServer": "", + "foreignOptionDisplay": "", + "fields": [ + { + "objectType": "TableField_PGSQL", + "name": "history_id", + "type": "int8", + "length": 64, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": false, + "defaultType": "Others", + "defaultValue": "nextval('augur_operations.gh_worker_history_history_id_seq'::regclass)", + "comment": "", + "oldName": "history_id", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 1, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": "", + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "repo_id", + "type": "int8", + "length": 64, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "repo_id", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 2, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "worker", + "type": "varchar", + "length": 255, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": false, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "worker", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 3, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": {}, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "job_model", + "type": "varchar", + "length": 255, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": false, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "job_model", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 4, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": {}, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "oauth_id", + "type": "int4", + "length": 32, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "oauth_id", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 5, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "timestamp", + "type": "timestamp", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": false, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "timestamp", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 6, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "status", + "type": "varchar", + "length": 7, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": false, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "status", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 7, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "total_results", + "type": "int4", + "length": 32, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "total_results", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 8, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": null, + "identityMaximum": 0, + "hasNoIdentityMaxValue": true, + "isIdentityCycle": false + } + ], + "indexes": [], + "rules": [], + "primaryKey": { + "objectType": "PrimaryKey_PGSQL", + "name": "history_pkey", + "fields": [ + "history_id" + ], + "fillFactor": -1, + "indexTablespace": "", + "comment": "", + "isDeferrable": false, + "isDeferred": false, + "oldName": "history_pkey" + }, + "foreignKeys": [], + "uniques": [], + "checks": [], + "excludes": [], + "triggers": [], + "partitionKeys": [], + "partitions": [] + }, + { + "objectType": "TableNormal_PGSQL", + "name": "worker_job", + "comment": "This table stores the jobs workers collect data for. A job is found in the code, and in the augur.config.json under the construct of a “model”. ", + "tablespace": "", + "isUnlogged": false, + "owner": "augur", + "inheritFromTables": [], + "hasOIDs": false, + "fillFactor": -1, + "oldName": "worker_job", + "oid": 15487344, + "rows": 22, + "isInheritTables": false, + "cluster": "", + "ACL": "", + "isPartition": false, + "partitioningStrategy": "None", + "partitionOfSchema": "", + "partitionOfTable": "", + "partitionListValues": [], + "partitionRangeFromValues": [], + "partitionRangeToValues": [], + "foreignServer": "", + "foreignOptionDisplay": "", + "fields": [ + { + "objectType": "TableField_PGSQL", + "name": "job_model", + "type": "varchar", + "length": 255, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": false, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "job_model", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 1, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": 0, + "identityMaximum": 0, + "hasNoIdentityMaxValue": null, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "state", + "type": "int4", + "length": 32, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": false, + "defaultType": "Others", + "defaultValue": "0", + "comment": "", + "oldName": "state", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 2, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "zombie_head", + "type": "int4", + "length": 32, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "zombie_head", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 3, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "since_id_str", + "type": "varchar", + "length": 255, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": false, + "defaultType": "Others", + "defaultValue": "'0'::character varying", + "comment": "", + "oldName": "since_id_str", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 4, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "description", + "type": "varchar", + "length": 255, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "Others", + "defaultValue": "'None'::character varying", + "comment": "", + "oldName": "description", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 5, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "last_count", + "type": "int4", + "length": 32, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "last_count", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 6, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "last_run", + "type": "timestamp", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "Others", + "defaultValue": "NULL::timestamp without time zone", + "comment": "", + "oldName": "last_run", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 7, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "analysis_state", + "type": "int4", + "length": 32, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "Others", + "defaultValue": "0", + "comment": "", + "oldName": "analysis_state", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 8, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "oauth_id", + "type": "int4", + "length": 32, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": false, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "oauth_id", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 9, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + } + ], + "indexes": [], + "rules": [], + "primaryKey": { + "objectType": "PrimaryKey_PGSQL", + "name": "job_pkey", + "fields": [ + "job_model" + ], + "fillFactor": -1, + "indexTablespace": "", + "comment": "", + "isDeferrable": false, + "isDeferred": false, + "oldName": "job_pkey" + }, + "foreignKeys": [], + "uniques": [], + "checks": [], + "excludes": [], + "triggers": [], + "partitionKeys": [], + "partitions": [] + }, + { + "objectType": "TableNormal_PGSQL", + "name": "worker_oauth", + "comment": "This table stores credentials for retrieving data from platform API’s. Entries in this table must comply with the terms of service for each platform. ", + "tablespace": "", + "isUnlogged": false, + "owner": "augur", + "inheritFromTables": [], + "hasOIDs": false, + "fillFactor": -1, + "oldName": "worker_oauth", + "oid": 15487355, + "rows": 20, + "isInheritTables": false, + "cluster": "", + "ACL": "", + "isPartition": false, + "partitioningStrategy": "None", + "partitionOfSchema": "", + "partitionOfTable": "", + "partitionListValues": [], + "partitionRangeFromValues": [], + "partitionRangeToValues": [], + "foreignServer": "", + "foreignOptionDisplay": "", + "fields": [ + { + "objectType": "TableField_PGSQL", + "name": "oauth_id", + "type": "int8", + "length": 64, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": false, + "defaultType": "Others", + "defaultValue": "nextval('augur_operations.worker_oauth_oauth_id_seq'::regclass)", + "comment": "", + "oldName": "oauth_id", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 1, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "name", + "type": "varchar", + "length": 255, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": false, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "name", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 2, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "consumer_key", + "type": "varchar", + "length": 255, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": false, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "consumer_key", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 3, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": "", + "identityMaximum": 0, + "hasNoIdentityMaxValue": true, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "consumer_secret", + "type": "varchar", + "length": 255, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": false, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "consumer_secret", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 4, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "access_token", + "type": "varchar", + "length": 255, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": false, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "access_token", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 5, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "access_token_secret", + "type": "varchar", + "length": 255, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": false, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "access_token_secret", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 6, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "repo_directory", + "type": "varchar", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "repo_directory", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 7, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "platform", + "type": "varchar", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "Others", + "defaultValue": "'github'::character varying", + "comment": "", + "oldName": "platform", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 8, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + } + ], + "indexes": [], + "rules": [], + "primaryKey": { + "objectType": "PrimaryKey_PGSQL", + "name": "worker_oauth_pkey", + "fields": [ + "oauth_id" + ], + "fillFactor": -1, + "indexTablespace": "", + "comment": "", + "isDeferrable": false, + "isDeferred": false, + "oldName": "worker_oauth_pkey" + }, + "foreignKeys": [], + "uniques": [], + "checks": [], + "excludes": [], + "triggers": [], + "partitionKeys": [], + "partitions": [] + }, + { + "objectType": "TableNormal_PGSQL", + "name": "worker_settings_facade", + "comment": "For future use when we move all working tables to the augur_operations schema. ", + "tablespace": "", + "isUnlogged": false, + "owner": "augur", + "inheritFromTables": [], + "hasOIDs": false, + "fillFactor": -1, + "oldName": "worker_settings_facade", + "oid": 15487850, + "rows": 13, + "isInheritTables": false, + "cluster": "", + "ACL": "", + "isPartition": false, + "partitioningStrategy": "None", + "partitionOfSchema": "", + "partitionOfTable": "", + "partitionListValues": [], + "partitionRangeFromValues": [], + "partitionRangeToValues": [], + "foreignServer": "", + "foreignOptionDisplay": "", + "fields": [ + { + "objectType": "TableField_PGSQL", + "name": "id", + "type": "int4", + "length": 32, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": false, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "id", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 1, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "setting", + "type": "varchar", + "length": 32, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": false, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "setting", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 2, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "value", + "type": "varchar", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": false, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "value", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 3, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "last_modified", + "type": "timestamp", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": false, + "defaultType": "Others", + "defaultValue": "CURRENT_TIMESTAMP", + "comment": "", + "oldName": "last_modified", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 4, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + } + ], + "indexes": [], + "rules": [], + "primaryKey": { + "objectType": "PrimaryKey_PGSQL", + "name": "settings_pkey", + "fields": [ + "id" + ], + "fillFactor": -1, + "indexTablespace": "", + "comment": "", + "isDeferrable": false, + "isDeferred": false, + "oldName": "settings_pkey" + }, + "foreignKeys": [], + "uniques": [], + "checks": [], + "excludes": [], + "triggers": [], + "partitionKeys": [], + "partitions": [] + }, + { + "objectType": "TableNormal_PGSQL", + "name": "working_commits", + "comment": "For future use when we move all working tables to the augur_operations schema. ", + "tablespace": "", + "isUnlogged": false, + "owner": "augur", + "inheritFromTables": [], + "hasOIDs": false, + "fillFactor": -1, + "oldName": "working_commits", + "oid": 15487864, + "rows": 0, + "isInheritTables": false, + "cluster": "", + "ACL": "", + "isPartition": false, + "partitioningStrategy": "None", + "partitionOfSchema": "", + "partitionOfTable": "", + "partitionListValues": [], + "partitionRangeFromValues": [], + "partitionRangeToValues": [], + "foreignServer": "", + "foreignOptionDisplay": "", + "fields": [ + { + "objectType": "TableField_PGSQL", + "name": "repos_id", + "type": "int4", + "length": 32, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": false, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "repos_id", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 1, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "working_commit", + "type": "varchar", + "length": 40, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "Others", + "defaultValue": "'NULL'::character varying", + "comment": "", + "oldName": "working_commit", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 2, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + } + ], + "indexes": [], + "rules": [], + "foreignKeys": [], + "uniques": [], + "checks": [], + "excludes": [], + "triggers": [], + "partitionKeys": [], + "partitions": [] + } + ], + "views": [] + }, + { + "objectType": "Schema_PGSQL", + "name": "spdx", + "comment": "", + "tables": [ + { + "objectType": "TableNormal_PGSQL", + "name": "annotation_types", + "comment": "", + "tablespace": "", + "isUnlogged": false, + "owner": "augur", + "inheritFromTables": [], + "hasOIDs": false, + "fillFactor": -1, + "oldName": "annotation_types", + "oid": 15487411, + "rows": 2, + "isInheritTables": false, + "cluster": "", + "ACL": "", + "isPartition": false, + "partitioningStrategy": "None", + "partitionOfSchema": "", + "partitionOfTable": "", + "partitionListValues": [], + "partitionRangeFromValues": [], + "partitionRangeToValues": [], + "foreignServer": "", + "foreignOptionDisplay": "", + "fields": [ + { + "objectType": "TableField_PGSQL", + "name": "annotation_type_id", + "type": "int4", + "length": 32, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": false, + "defaultType": "Others", + "defaultValue": "nextval('spdx.annotation_types_annotation_type_id_seq'::regclass)", + "comment": "", + "oldName": "annotation_type_id", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 1, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "name", + "type": "varchar", + "length": 255, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": false, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "name", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 2, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + } + ], + "indexes": [], + "rules": [], + "primaryKey": { + "objectType": "PrimaryKey_PGSQL", + "name": "annotation_types_pkey", + "fields": [ + "annotation_type_id" + ], + "fillFactor": -1, + "indexTablespace": "", + "comment": "", + "isDeferrable": false, + "isDeferred": false, + "oldName": "annotation_types_pkey" + }, + "foreignKeys": [], + "uniques": [ + { + "objectType": "Unique_PGSQL", + "name": "uc_annotation_type_name", + "fields": [ + "name" + ], + "fillFactor": -1, + "indexTablespace": "", + "comment": "", + "isDeferrable": false, + "isDeferred": false, + "oldName": "uc_annotation_type_name" + } + ], + "checks": [], + "excludes": [], + "triggers": [], + "partitionKeys": [], + "partitions": [] + }, + { + "objectType": "TableNormal_PGSQL", + "name": "annotations", + "comment": "", + "tablespace": "", + "isUnlogged": false, + "owner": "augur", + "inheritFromTables": [], + "hasOIDs": false, + "fillFactor": -1, + "oldName": "annotations", + "oid": 15487415, + "rows": 0, + "isInheritTables": false, + "cluster": "", + "ACL": "", + "isPartition": false, + "partitioningStrategy": "None", + "partitionOfSchema": "", + "partitionOfTable": "", + "partitionListValues": [], + "partitionRangeFromValues": [], + "partitionRangeToValues": [], + "foreignServer": "", + "foreignOptionDisplay": "", + "fields": [ + { + "objectType": "TableField_PGSQL", + "name": "annotation_id", + "type": "int4", + "length": 32, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": false, + "defaultType": "Others", + "defaultValue": "nextval('spdx.annotations_annotation_id_seq'::regclass)", + "comment": "", + "oldName": "annotation_id", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 1, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "document_id", + "type": "int4", + "length": 32, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": false, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "document_id", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 2, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": 0, + "identityMaximum": 0, + "hasNoIdentityMaxValue": null, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "annotation_type_id", + "type": "int4", + "length": 32, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": false, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "annotation_type_id", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 3, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "identifier_id", + "type": "int4", + "length": 32, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": false, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "identifier_id", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 4, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": null, + "identityMaximum": 0, + "hasNoIdentityMaxValue": true, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "creator_id", + "type": "int4", + "length": 32, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": false, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "creator_id", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 5, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": 0, + "identityMaximum": 0, + "hasNoIdentityMaxValue": null, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "created_ts", + "type": "timestamptz", + "length": 6, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "created_ts", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 6, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "comment", + "type": "text", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": false, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "comment", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 7, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": null, + "identityMaximum": 0, + "hasNoIdentityMaxValue": true, + "isIdentityCycle": false + } + ], + "indexes": [], + "rules": [], + "primaryKey": { + "objectType": "PrimaryKey_PGSQL", + "name": "annotations_pkey", + "fields": [ + "annotation_id" + ], + "fillFactor": -1, + "indexTablespace": "", + "comment": "", + "isDeferrable": false, + "isDeferred": false, + "oldName": "annotations_pkey" + }, + "foreignKeys": [ + { + "objectType": "ForeignKey_PGSQL", + "name": "annotations_annotation_type_id_fkey", + "fields": [ + "annotation_type_id" + ], + "referenceSchema": "spdx", + "referenceTable": "annotation_types", + "referenceFields": [ + "annotation_type_id" + ], + "onDelete": "NO ACTION", + "onUpdate": "NO ACTION", + "comment": "", + "isMatchFull": false, + "isDeferrable": false, + "isDeferred": false, + "sourceCardinality": "ZeroOrManyRelationship", + "targetCardinality": "OneAndOnlyOneRelationship", + "oldName": "annotations_annotation_type_id_fkey" + }, + { + "objectType": "ForeignKey_PGSQL", + "name": "annotations_creator_id_fkey", + "fields": [ + "creator_id" + ], + "referenceSchema": "spdx", + "referenceTable": "creators", + "referenceFields": [ + "creator_id" + ], + "onDelete": "NO ACTION", + "onUpdate": "NO ACTION", + "comment": "", + "isMatchFull": false, + "isDeferrable": false, + "isDeferred": false, + "sourceCardinality": "ZeroOrManyRelationship", + "targetCardinality": "OneAndOnlyOneRelationship", + "oldName": "annotations_creator_id_fkey" + }, + { + "objectType": "ForeignKey_PGSQL", + "name": "annotations_document_id_fkey", + "fields": [ + "document_id" + ], + "referenceSchema": "spdx", + "referenceTable": "documents", + "referenceFields": [ + "document_id" + ], + "onDelete": "NO ACTION", + "onUpdate": "NO ACTION", + "comment": "", + "isMatchFull": false, + "isDeferrable": false, + "isDeferred": false, + "sourceCardinality": "ZeroOrManyRelationship", + "targetCardinality": "OneAndOnlyOneRelationship", + "oldName": "annotations_document_id_fkey" + }, + { + "objectType": "ForeignKey_PGSQL", + "name": "annotations_identifier_id_fkey", + "fields": [ + "identifier_id" + ], + "referenceSchema": "spdx", + "referenceTable": "identifiers", + "referenceFields": [ + "identifier_id" + ], + "onDelete": "NO ACTION", + "onUpdate": "NO ACTION", + "comment": "", + "isMatchFull": false, + "isDeferrable": false, + "isDeferred": false, + "sourceCardinality": "ZeroOrManyRelationship", + "targetCardinality": "OneAndOnlyOneRelationship", + "oldName": "annotations_identifier_id_fkey" + } + ], + "uniques": [], + "checks": [], + "excludes": [], + "triggers": [], + "partitionKeys": [], + "partitions": [] + }, + { + "objectType": "TableNormal_PGSQL", + "name": "augur_repo_map", + "comment": "", + "tablespace": "", + "isUnlogged": false, + "owner": "augur", + "inheritFromTables": [], + "hasOIDs": false, + "fillFactor": -1, + "oldName": "augur_repo_map", + "oid": 15487422, + "rows": 0, + "isInheritTables": false, + "cluster": "", + "ACL": "", + "isPartition": false, + "partitioningStrategy": "None", + "partitionOfSchema": "", + "partitionOfTable": "", + "partitionListValues": [], + "partitionRangeFromValues": [], + "partitionRangeToValues": [], + "foreignServer": "", + "foreignOptionDisplay": "", + "fields": [ + { + "objectType": "TableField_PGSQL", + "name": "map_id", + "type": "int4", + "length": 32, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": false, + "defaultType": "Others", + "defaultValue": "nextval('spdx.augur_repo_map_map_id_seq'::regclass)", + "comment": "", + "oldName": "map_id", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 1, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "dosocs_pkg_id", + "type": "int4", + "length": 32, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "dosocs_pkg_id", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 2, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": null, + "identityMaximum": 0, + "hasNoIdentityMaxValue": true, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "dosocs_pkg_name", + "type": "text", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "dosocs_pkg_name", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 3, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": 0, + "identityMaximum": 0, + "hasNoIdentityMaxValue": null, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "repo_id", + "type": "int4", + "length": 32, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "repo_id", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 4, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "repo_path", + "type": "text", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "repo_path", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 5, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": null, + "identityMaximum": 0, + "hasNoIdentityMaxValue": true, + "isIdentityCycle": false + } + ], + "indexes": [], + "rules": [], + "primaryKey": { + "objectType": "PrimaryKey_PGSQL", + "name": "augur_repo_map_pkey", + "fields": [ + "map_id" + ], + "fillFactor": -1, + "indexTablespace": "", + "comment": "", + "isDeferrable": false, + "isDeferred": false, + "oldName": "augur_repo_map_pkey" + }, + "foreignKeys": [], + "uniques": [], + "checks": [], + "excludes": [], + "triggers": [], + "partitionKeys": [], + "partitions": [] + }, + { + "objectType": "TableNormal_PGSQL", + "name": "creator_types", + "comment": "", + "tablespace": "", + "isUnlogged": false, + "owner": "augur", + "inheritFromTables": [], + "hasOIDs": false, + "fillFactor": -1, + "oldName": "creator_types", + "oid": 15487429, + "rows": 3, + "isInheritTables": false, + "cluster": "", + "ACL": "", + "isPartition": false, + "partitioningStrategy": "None", + "partitionOfSchema": "", + "partitionOfTable": "", + "partitionListValues": [], + "partitionRangeFromValues": [], + "partitionRangeToValues": [], + "foreignServer": "", + "foreignOptionDisplay": "", + "fields": [ + { + "objectType": "TableField_PGSQL", + "name": "creator_type_id", + "type": "int4", + "length": 32, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": false, + "defaultType": "Others", + "defaultValue": "nextval('spdx.creator_types_creator_type_id_seq'::regclass)", + "comment": "", + "oldName": "creator_type_id", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 1, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": 0, + "identityMaximum": 0, + "hasNoIdentityMaxValue": null, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "name", + "type": "varchar", + "length": 255, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": false, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "name", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 2, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": true, + "isIdentityCycle": false + } + ], + "indexes": [], + "rules": [], + "primaryKey": { + "objectType": "PrimaryKey_PGSQL", + "name": "creator_types_pkey", + "fields": [ + "creator_type_id" + ], + "fillFactor": -1, + "indexTablespace": "", + "comment": "", + "isDeferrable": false, + "isDeferred": false, + "oldName": "creator_types_pkey" + }, + "foreignKeys": [], + "uniques": [], + "checks": [], + "excludes": [], + "triggers": [], + "partitionKeys": [], + "partitions": [] + }, + { + "objectType": "TableNormal_PGSQL", + "name": "creators", + "comment": "", + "tablespace": "", + "isUnlogged": false, + "owner": "augur", + "inheritFromTables": [], + "hasOIDs": false, + "fillFactor": -1, + "oldName": "creators", + "oid": 15487433, + "rows": 1, + "isInheritTables": false, + "cluster": "", + "ACL": "", + "isPartition": false, + "partitioningStrategy": "None", + "partitionOfSchema": "", + "partitionOfTable": "", + "partitionListValues": [], + "partitionRangeFromValues": [], + "partitionRangeToValues": [], + "foreignServer": "", + "foreignOptionDisplay": "", + "fields": [ + { + "objectType": "TableField_PGSQL", + "name": "creator_id", + "type": "int4", + "length": 32, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": false, + "defaultType": "Others", + "defaultValue": "nextval('spdx.creators_creator_id_seq'::regclass)", + "comment": "", + "oldName": "creator_id", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 1, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": null, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "creator_type_id", + "type": "int4", + "length": 32, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": false, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "creator_type_id", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 2, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "name", + "type": "varchar", + "length": 255, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": false, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "name", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 3, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "email", + "type": "varchar", + "length": 255, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": false, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "email", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 4, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + } + ], + "indexes": [], + "rules": [], + "primaryKey": { + "objectType": "PrimaryKey_PGSQL", + "name": "creators_pkey", + "fields": [ + "creator_id" + ], + "fillFactor": -1, + "indexTablespace": "", + "comment": "", + "isDeferrable": false, + "isDeferred": false, + "oldName": "creators_pkey" + }, + "foreignKeys": [ + { + "objectType": "ForeignKey_PGSQL", + "name": "creators_creator_type_id_fkey", + "fields": [ + "creator_type_id" + ], + "referenceSchema": "spdx", + "referenceTable": "creator_types", + "referenceFields": [ + "creator_type_id" + ], + "onDelete": "NO ACTION", + "onUpdate": "NO ACTION", + "comment": "", + "isMatchFull": false, + "isDeferrable": false, + "isDeferred": false, + "sourceCardinality": "ZeroOrManyRelationship", + "targetCardinality": "OneAndOnlyOneRelationship", + "oldName": "creators_creator_type_id_fkey" + } + ], + "uniques": [], + "checks": [], + "excludes": [], + "triggers": [], + "partitionKeys": [], + "partitions": [] + }, + { + "objectType": "TableNormal_PGSQL", + "name": "document_namespaces", + "comment": "", + "tablespace": "", + "isUnlogged": false, + "owner": "augur", + "inheritFromTables": [], + "hasOIDs": false, + "fillFactor": -1, + "oldName": "document_namespaces", + "oid": 15487440, + "rows": 0, + "isInheritTables": false, + "cluster": "", + "ACL": "", + "isPartition": false, + "partitioningStrategy": "None", + "partitionOfSchema": "", + "partitionOfTable": "", + "partitionListValues": [], + "partitionRangeFromValues": [], + "partitionRangeToValues": [], + "foreignServer": "", + "foreignOptionDisplay": "", + "fields": [ + { + "objectType": "TableField_PGSQL", + "name": "document_namespace_id", + "type": "int4", + "length": 32, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": false, + "defaultType": "Others", + "defaultValue": "nextval('spdx.document_namespaces_document_namespace_id_seq'::regclass)", + "comment": "", + "oldName": "document_namespace_id", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 1, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": 0, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "uri", + "type": "varchar", + "length": 500, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": false, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "uri", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 2, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": true, + "identityMaximum": 0, + "hasNoIdentityMaxValue": true, + "isIdentityCycle": false + } + ], + "indexes": [], + "rules": [], + "primaryKey": { + "objectType": "PrimaryKey_PGSQL", + "name": "document_namespaces_pkey", + "fields": [ + "document_namespace_id" + ], + "fillFactor": -1, + "indexTablespace": "", + "comment": "", + "isDeferrable": false, + "isDeferred": false, + "oldName": "document_namespaces_pkey" + }, + "foreignKeys": [], + "uniques": [ + { + "objectType": "Unique_PGSQL", + "name": "uc_document_namespace_uri", + "fields": [ + "uri" + ], + "fillFactor": -1, + "indexTablespace": "", + "comment": "", + "isDeferrable": false, + "isDeferred": false, + "oldName": "uc_document_namespace_uri" + } + ], + "checks": [], + "excludes": [], + "triggers": [], + "partitionKeys": [], + "partitions": [] + }, + { + "objectType": "TableNormal_PGSQL", + "name": "documents", + "comment": "", + "tablespace": "", + "isUnlogged": false, + "owner": "augur", + "inheritFromTables": [], + "hasOIDs": false, + "fillFactor": -1, + "oldName": "documents", + "oid": 15487444, + "rows": 0, + "isInheritTables": false, + "cluster": "", + "ACL": "", + "isPartition": false, + "partitioningStrategy": "None", + "partitionOfSchema": "", + "partitionOfTable": "", + "partitionListValues": [], + "partitionRangeFromValues": [], + "partitionRangeToValues": [], + "foreignServer": "", + "foreignOptionDisplay": "", + "fields": [ + { + "objectType": "TableField_PGSQL", + "name": "document_id", + "type": "int4", + "length": 32, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": false, + "defaultType": "Others", + "defaultValue": "nextval('spdx.documents_document_id_seq'::regclass)", + "comment": "", + "oldName": "document_id", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 1, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "document_namespace_id", + "type": "int4", + "length": 32, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": false, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "document_namespace_id", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 2, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "data_license_id", + "type": "int4", + "length": 32, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": false, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "data_license_id", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 3, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "spdx_version", + "type": "varchar", + "length": 255, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": false, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "spdx_version", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 4, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": 0, + "identityMaximum": 0, + "hasNoIdentityMaxValue": null, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "name", + "type": "varchar", + "length": 255, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": false, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "name", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 5, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "license_list_version", + "type": "varchar", + "length": 255, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": false, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "license_list_version", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 6, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": null, + "identityMaximum": 0, + "hasNoIdentityMaxValue": true, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "created_ts", + "type": "timestamptz", + "length": 6, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": false, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "created_ts", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 7, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "creator_comment", + "type": "text", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": false, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "creator_comment", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 8, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "document_comment", + "type": "text", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": false, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "document_comment", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 9, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "package_id", + "type": "int4", + "length": 32, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": false, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "package_id", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 10, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + } + ], + "indexes": [], + "rules": [], + "primaryKey": { + "objectType": "PrimaryKey_PGSQL", + "name": "documents_pkey", + "fields": [ + "document_id" + ], + "fillFactor": -1, + "indexTablespace": "", + "comment": "", + "isDeferrable": false, + "isDeferred": false, + "oldName": "documents_pkey" + }, + "foreignKeys": [ + { + "objectType": "ForeignKey_PGSQL", + "name": "documents_data_license_id_fkey", + "fields": [ + "data_license_id" + ], + "referenceSchema": "spdx", + "referenceTable": "licenses", + "referenceFields": [ + "license_id" + ], + "onDelete": "NO ACTION", + "onUpdate": "NO ACTION", + "comment": "", + "isMatchFull": false, + "isDeferrable": false, + "isDeferred": false, + "sourceCardinality": "ZeroOrManyRelationship", + "targetCardinality": "OneAndOnlyOneRelationship", + "oldName": "documents_data_license_id_fkey" + }, + { + "objectType": "ForeignKey_PGSQL", + "name": "documents_document_namespace_id_fkey", + "fields": [ + "document_namespace_id" + ], + "referenceSchema": "spdx", + "referenceTable": "document_namespaces", + "referenceFields": [ + "document_namespace_id" + ], + "onDelete": "NO ACTION", + "onUpdate": "NO ACTION", + "comment": "", + "isMatchFull": false, + "isDeferrable": false, + "isDeferred": false, + "sourceCardinality": "ZeroOrOneRelationship", + "targetCardinality": "OneAndOnlyOneRelationship", + "oldName": "documents_document_namespace_id_fkey" + }, + { + "objectType": "ForeignKey_PGSQL", + "name": "documents_package_id_fkey", + "fields": [ + "package_id" + ], + "referenceSchema": "spdx", + "referenceTable": "packages", + "referenceFields": [ + "package_id" + ], + "onDelete": "NO ACTION", + "onUpdate": "NO ACTION", + "comment": "", + "isMatchFull": false, + "isDeferrable": false, + "isDeferred": false, + "sourceCardinality": "ZeroOrManyRelationship", + "targetCardinality": "OneAndOnlyOneRelationship", + "oldName": "documents_package_id_fkey" + } + ], + "uniques": [ + { + "objectType": "Unique_PGSQL", + "name": "uc_document_document_namespace_id", + "fields": [ + "document_namespace_id" + ], + "fillFactor": -1, + "indexTablespace": "", + "comment": "", + "isDeferrable": false, + "isDeferred": false, + "oldName": "uc_document_document_namespace_id" + } + ], + "checks": [], + "excludes": [], + "triggers": [], + "partitionKeys": [], + "partitions": [] + }, + { + "objectType": "TableNormal_PGSQL", + "name": "documents_creators", + "comment": "", + "tablespace": "", + "isUnlogged": false, + "owner": "augur", + "inheritFromTables": [], + "hasOIDs": false, + "fillFactor": -1, + "oldName": "documents_creators", + "oid": 15487451, + "rows": 0, + "isInheritTables": false, + "cluster": "", + "ACL": "", + "isPartition": false, + "partitioningStrategy": "None", + "partitionOfSchema": "", + "partitionOfTable": "", + "partitionListValues": [], + "partitionRangeFromValues": [], + "partitionRangeToValues": [], + "foreignServer": "", + "foreignOptionDisplay": "", + "fields": [ + { + "objectType": "TableField_PGSQL", + "name": "document_creator_id", + "type": "int4", + "length": 32, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": false, + "defaultType": "Others", + "defaultValue": "nextval('spdx.documents_creators_document_creator_id_seq'::regclass)", + "comment": "", + "oldName": "document_creator_id", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 1, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "document_id", + "type": "int4", + "length": 32, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": false, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "document_id", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 2, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": "", + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "creator_id", + "type": "int4", + "length": 32, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": false, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "creator_id", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 3, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": "", + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + } + ], + "indexes": [], + "rules": [], + "primaryKey": { + "objectType": "PrimaryKey_PGSQL", + "name": "documents_creators_pkey", + "fields": [ + "document_creator_id" + ], + "fillFactor": -1, + "indexTablespace": "", + "comment": "", + "isDeferrable": false, + "isDeferred": false, + "oldName": "documents_creators_pkey" + }, + "foreignKeys": [ + { + "objectType": "ForeignKey_PGSQL", + "name": "documents_creators_creator_id_fkey", + "fields": [ + "creator_id" + ], + "referenceSchema": "spdx", + "referenceTable": "creators", + "referenceFields": [ + "creator_id" + ], + "onDelete": "NO ACTION", + "onUpdate": "NO ACTION", + "comment": "", + "isMatchFull": false, + "isDeferrable": false, + "isDeferred": false, + "sourceCardinality": "ZeroOrManyRelationship", + "targetCardinality": "OneAndOnlyOneRelationship", + "oldName": "documents_creators_creator_id_fkey" + }, + { + "objectType": "ForeignKey_PGSQL", + "name": "documents_creators_document_id_fkey", + "fields": [ + "document_id" + ], + "referenceSchema": "spdx", + "referenceTable": "documents", + "referenceFields": [ + "document_id" + ], + "onDelete": "NO ACTION", + "onUpdate": "NO ACTION", + "comment": "", + "isMatchFull": false, + "isDeferrable": false, + "isDeferred": false, + "sourceCardinality": "ZeroOrManyRelationship", + "targetCardinality": "OneAndOnlyOneRelationship", + "oldName": "documents_creators_document_id_fkey" + } + ], + "uniques": [], + "checks": [], + "excludes": [], + "triggers": [], + "partitionKeys": [], + "partitions": [] + }, + { + "objectType": "TableNormal_PGSQL", + "name": "external_refs", + "comment": "", + "tablespace": "", + "isUnlogged": false, + "owner": "augur", + "inheritFromTables": [], + "hasOIDs": false, + "fillFactor": -1, + "oldName": "external_refs", + "oid": 15487455, + "rows": 0, + "isInheritTables": false, + "cluster": "", + "ACL": "", + "isPartition": false, + "partitioningStrategy": "None", + "partitionOfSchema": "", + "partitionOfTable": "", + "partitionListValues": [], + "partitionRangeFromValues": [], + "partitionRangeToValues": [], + "foreignServer": "", + "foreignOptionDisplay": "", + "fields": [ + { + "objectType": "TableField_PGSQL", + "name": "external_ref_id", + "type": "int4", + "length": 32, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": false, + "defaultType": "Others", + "defaultValue": "nextval('spdx.external_refs_external_ref_id_seq'::regclass)", + "comment": "", + "oldName": "external_ref_id", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 1, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": [], + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "document_id", + "type": "int4", + "length": 32, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": false, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "document_id", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 2, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "document_namespace_id", + "type": "int4", + "length": 32, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": false, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "document_namespace_id", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 3, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "id_string", + "type": "varchar", + "length": 255, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": false, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "id_string", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 4, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "sha256", + "type": "varchar", + "length": 64, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": false, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "sha256", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 5, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + } + ], + "indexes": [], + "rules": [], + "primaryKey": { + "objectType": "PrimaryKey_PGSQL", + "name": "external_refs_pkey", + "fields": [ + "external_ref_id" + ], + "fillFactor": -1, + "indexTablespace": "", + "comment": "", + "isDeferrable": false, + "isDeferred": false, + "oldName": "external_refs_pkey" + }, + "foreignKeys": [ + { + "objectType": "ForeignKey_PGSQL", + "name": "external_refs_document_id_fkey", + "fields": [ + "document_id" + ], + "referenceSchema": "spdx", + "referenceTable": "documents", + "referenceFields": [ + "document_id" + ], + "onDelete": "NO ACTION", + "onUpdate": "NO ACTION", + "comment": "", + "isMatchFull": false, + "isDeferrable": false, + "isDeferred": false, + "sourceCardinality": "ZeroOrManyRelationship", + "targetCardinality": "OneAndOnlyOneRelationship", + "oldName": "external_refs_document_id_fkey" + }, + { + "objectType": "ForeignKey_PGSQL", + "name": "external_refs_document_namespace_id_fkey", + "fields": [ + "document_namespace_id" + ], + "referenceSchema": "spdx", + "referenceTable": "document_namespaces", + "referenceFields": [ + "document_namespace_id" + ], + "onDelete": "NO ACTION", + "onUpdate": "NO ACTION", + "comment": "", + "isMatchFull": false, + "isDeferrable": false, + "isDeferred": false, + "sourceCardinality": "ZeroOrManyRelationship", + "targetCardinality": "OneAndOnlyOneRelationship", + "oldName": "external_refs_document_namespace_id_fkey" + } + ], + "uniques": [ + { + "objectType": "Unique_PGSQL", + "name": "uc_external_ref_document_id_string", + "fields": [ + "document_id", + "id_string" + ], + "fillFactor": -1, + "indexTablespace": "", + "comment": "", + "isDeferrable": false, + "isDeferred": false, + "oldName": "uc_external_ref_document_id_string" + } + ], + "checks": [], + "excludes": [], + "triggers": [], + "partitionKeys": [], + "partitions": [] + }, + { + "objectType": "TableNormal_PGSQL", + "name": "file_contributors", + "comment": "", + "tablespace": "", + "isUnlogged": false, + "owner": "augur", + "inheritFromTables": [], + "hasOIDs": false, + "fillFactor": -1, + "oldName": "file_contributors", + "oid": 15487459, + "rows": 0, + "isInheritTables": false, + "cluster": "", + "ACL": "", + "isPartition": false, + "partitioningStrategy": "None", + "partitionOfSchema": "", + "partitionOfTable": "", + "partitionListValues": [], + "partitionRangeFromValues": [], + "partitionRangeToValues": [], + "foreignServer": "", + "foreignOptionDisplay": "", + "fields": [ + { + "objectType": "TableField_PGSQL", + "name": "file_contributor_id", + "type": "int4", + "length": 32, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": false, + "defaultType": "Others", + "defaultValue": "nextval('spdx.file_contributors_file_contributor_id_seq'::regclass)", + "comment": "", + "oldName": "file_contributor_id", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 1, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "file_id", + "type": "int4", + "length": 32, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": false, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "file_id", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 2, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "contributor", + "type": "text", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": false, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "contributor", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 3, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + } + ], + "indexes": [], + "rules": [], + "primaryKey": { + "objectType": "PrimaryKey_PGSQL", + "name": "file_contributors_pkey", + "fields": [ + "file_contributor_id" + ], + "fillFactor": -1, + "indexTablespace": "", + "comment": "", + "isDeferrable": false, + "isDeferred": false, + "oldName": "file_contributors_pkey" + }, + "foreignKeys": [ + { + "objectType": "ForeignKey_PGSQL", + "name": "file_contributors_file_id_fkey", + "fields": [ + "file_id" + ], + "referenceSchema": "spdx", + "referenceTable": "files", + "referenceFields": [ + "file_id" + ], + "onDelete": "NO ACTION", + "onUpdate": "NO ACTION", + "comment": "", + "isMatchFull": false, + "isDeferrable": false, + "isDeferred": false, + "sourceCardinality": "ZeroOrManyRelationship", + "targetCardinality": "OneAndOnlyOneRelationship", + "oldName": "file_contributors_file_id_fkey" + } + ], + "uniques": [], + "checks": [], + "excludes": [], + "triggers": [], + "partitionKeys": [], + "partitions": [] + }, + { + "objectType": "TableNormal_PGSQL", + "name": "file_types", + "comment": "", + "tablespace": "", + "isUnlogged": false, + "owner": "augur", + "inheritFromTables": [], + "hasOIDs": false, + "fillFactor": -1, + "oldName": "file_types", + "oid": 15487466, + "rows": 11, + "isInheritTables": false, + "cluster": "", + "ACL": "", + "isPartition": false, + "partitioningStrategy": "None", + "partitionOfSchema": "", + "partitionOfTable": "", + "partitionListValues": [], + "partitionRangeFromValues": [], + "partitionRangeToValues": [], + "foreignServer": "", + "foreignOptionDisplay": "", + "fields": [ + { + "objectType": "TableField_PGSQL", + "name": "file_type_id", + "type": "int4", + "length": 32, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "file_type_id", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 1, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "name", + "type": "varchar", + "length": 255, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": false, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "name", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 2, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + } + ], + "indexes": [], + "rules": [], + "primaryKey": { + "objectType": "PrimaryKey_PGSQL", + "name": "uc_file_type_name", + "fields": [ + "name" + ], + "fillFactor": -1, + "indexTablespace": "", + "comment": "", + "isDeferrable": false, + "isDeferred": false, + "oldName": "uc_file_type_name" + }, + "foreignKeys": [], + "uniques": [], + "checks": [], + "excludes": [], + "triggers": [], + "partitionKeys": [], + "partitions": [] + }, + { + "objectType": "TableNormal_PGSQL", + "name": "files", + "comment": "", + "tablespace": "", + "isUnlogged": false, + "owner": "augur", + "inheritFromTables": [], + "hasOIDs": false, + "fillFactor": -1, + "oldName": "files", + "oid": 15487470, + "rows": 0, + "isInheritTables": false, + "cluster": "", + "ACL": "", + "isPartition": false, + "partitioningStrategy": "None", + "partitionOfSchema": "", + "partitionOfTable": "", + "partitionListValues": [], + "partitionRangeFromValues": [], + "partitionRangeToValues": [], + "foreignServer": "", + "foreignOptionDisplay": "", + "fields": [ + { + "objectType": "TableField_PGSQL", + "name": "file_id", + "type": "int4", + "length": 32, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": false, + "defaultType": "Others", + "defaultValue": "nextval('spdx.files_file_id_seq'::regclass)", + "comment": "", + "oldName": "file_id", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 1, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "file_type_id", + "type": "int4", + "length": 32, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "file_type_id", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 2, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "sha256", + "type": "varchar", + "length": 64, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": false, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "sha256", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 3, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "copyright_text", + "type": "text", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "copyright_text", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 4, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "package_id", + "type": "int4", + "length": 32, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "package_id", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 5, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "comment", + "type": "text", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": false, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "comment", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 6, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "notice", + "type": "text", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": false, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "notice", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 7, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + } + ], + "indexes": [], + "rules": [], + "primaryKey": { + "objectType": "PrimaryKey_PGSQL", + "name": "files_pkey", + "fields": [ + "file_id" + ], + "fillFactor": -1, + "indexTablespace": "", + "comment": "", + "isDeferrable": false, + "isDeferred": false, + "oldName": "files_pkey" + }, + "foreignKeys": [], + "uniques": [ + { + "objectType": "Unique_PGSQL", + "name": "uc_file_sha256", + "fields": [ + "sha256" + ], + "fillFactor": -1, + "indexTablespace": "", + "comment": "", + "isDeferrable": false, + "isDeferred": false, + "oldName": "uc_file_sha256" + } + ], + "checks": [], + "excludes": [], + "triggers": [], + "partitionKeys": [], + "partitions": [] + }, + { + "objectType": "TableNormal_PGSQL", + "name": "files_licenses", + "comment": "", + "tablespace": "", + "isUnlogged": false, + "owner": "augur", + "inheritFromTables": [], + "hasOIDs": false, + "fillFactor": -1, + "oldName": "files_licenses", + "oid": 15487477, + "rows": 0, + "isInheritTables": false, + "cluster": "", + "ACL": "", + "isPartition": false, + "partitioningStrategy": "None", + "partitionOfSchema": "", + "partitionOfTable": "", + "partitionListValues": [], + "partitionRangeFromValues": [], + "partitionRangeToValues": [], + "foreignServer": "", + "foreignOptionDisplay": "", + "fields": [ + { + "objectType": "TableField_PGSQL", + "name": "file_license_id", + "type": "int4", + "length": 32, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": false, + "defaultType": "Others", + "defaultValue": "nextval('spdx.files_licenses_file_license_id_seq'::regclass)", + "comment": "", + "oldName": "file_license_id", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 1, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "file_id", + "type": "int4", + "length": 32, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": false, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "file_id", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 2, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "license_id", + "type": "int4", + "length": 32, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": false, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "license_id", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 3, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "extracted_text", + "type": "text", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": false, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "extracted_text", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 4, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + } + ], + "indexes": [], + "rules": [], + "primaryKey": { + "objectType": "PrimaryKey_PGSQL", + "name": "files_licenses_pkey", + "fields": [ + "file_license_id" + ], + "fillFactor": -1, + "indexTablespace": "", + "comment": "", + "isDeferrable": false, + "isDeferred": false, + "oldName": "files_licenses_pkey" + }, + "foreignKeys": [ + { + "objectType": "ForeignKey_PGSQL", + "name": "files_licenses_file_id_fkey", + "fields": [ + "file_id" + ], + "referenceSchema": "spdx", + "referenceTable": "files", + "referenceFields": [ + "file_id" + ], + "onDelete": "NO ACTION", + "onUpdate": "NO ACTION", + "comment": "", + "isMatchFull": false, + "isDeferrable": false, + "isDeferred": false, + "sourceCardinality": "ZeroOrManyRelationship", + "targetCardinality": "OneAndOnlyOneRelationship", + "oldName": "files_licenses_file_id_fkey" + }, + { + "objectType": "ForeignKey_PGSQL", + "name": "files_licenses_license_id_fkey", + "fields": [ + "license_id" + ], + "referenceSchema": "spdx", + "referenceTable": "licenses", + "referenceFields": [ + "license_id" + ], + "onDelete": "NO ACTION", + "onUpdate": "NO ACTION", + "comment": "", + "isMatchFull": false, + "isDeferrable": false, + "isDeferred": false, + "sourceCardinality": "ZeroOrManyRelationship", + "targetCardinality": "OneAndOnlyOneRelationship", + "oldName": "files_licenses_license_id_fkey" + } + ], + "uniques": [ + { + "objectType": "Unique_PGSQL", + "name": "uc_file_license", + "fields": [ + "file_id", + "license_id" + ], + "fillFactor": -1, + "indexTablespace": "", + "comment": "", + "isDeferrable": false, + "isDeferred": false, + "oldName": "uc_file_license" + } + ], + "checks": [], + "excludes": [], + "triggers": [], + "partitionKeys": [], + "partitions": [] + }, + { + "objectType": "TableNormal_PGSQL", + "name": "files_scans", + "comment": "", + "tablespace": "", + "isUnlogged": false, + "owner": "augur", + "inheritFromTables": [], + "hasOIDs": false, + "fillFactor": -1, + "oldName": "files_scans", + "oid": 15487484, + "rows": 0, + "isInheritTables": false, + "cluster": "", + "ACL": "", + "isPartition": false, + "partitioningStrategy": "None", + "partitionOfSchema": "", + "partitionOfTable": "", + "partitionListValues": [], + "partitionRangeFromValues": [], + "partitionRangeToValues": [], + "foreignServer": "", + "foreignOptionDisplay": "", + "fields": [ + { + "objectType": "TableField_PGSQL", + "name": "file_scan_id", + "type": "int4", + "length": 32, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": false, + "defaultType": "Others", + "defaultValue": "nextval('spdx.files_scans_file_scan_id_seq'::regclass)", + "comment": "", + "oldName": "file_scan_id", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 1, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "file_id", + "type": "int4", + "length": 32, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": false, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "file_id", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 2, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "scanner_id", + "type": "int4", + "length": 32, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": false, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "scanner_id", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 3, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + } + ], + "indexes": [], + "rules": [], + "primaryKey": { + "objectType": "PrimaryKey_PGSQL", + "name": "files_scans_pkey", + "fields": [ + "file_scan_id" + ], + "fillFactor": -1, + "indexTablespace": "", + "comment": "", + "isDeferrable": false, + "isDeferred": false, + "oldName": "files_scans_pkey" + }, + "foreignKeys": [ + { + "objectType": "ForeignKey_PGSQL", + "name": "files_scans_file_id_fkey", + "fields": [ + "file_id" + ], + "referenceSchema": "spdx", + "referenceTable": "files", + "referenceFields": [ + "file_id" + ], + "onDelete": "NO ACTION", + "onUpdate": "NO ACTION", + "comment": "", + "isMatchFull": false, + "isDeferrable": false, + "isDeferred": false, + "sourceCardinality": "ZeroOrManyRelationship", + "targetCardinality": "OneAndOnlyOneRelationship", + "oldName": "files_scans_file_id_fkey" + }, + { + "objectType": "ForeignKey_PGSQL", + "name": "files_scans_scanner_id_fkey", + "fields": [ + "scanner_id" + ], + "referenceSchema": "spdx", + "referenceTable": "scanners", + "referenceFields": [ + "scanner_id" + ], + "onDelete": "NO ACTION", + "onUpdate": "NO ACTION", + "comment": "", + "isMatchFull": false, + "isDeferrable": false, + "isDeferred": false, + "sourceCardinality": "ZeroOrManyRelationship", + "targetCardinality": "OneAndOnlyOneRelationship", + "oldName": "files_scans_scanner_id_fkey" + } + ], + "uniques": [ + { + "objectType": "Unique_PGSQL", + "name": "uc_file_scanner_id", + "fields": [ + "file_id", + "scanner_id" + ], + "fillFactor": -1, + "indexTablespace": "", + "comment": "", + "isDeferrable": false, + "isDeferred": false, + "oldName": "uc_file_scanner_id" + } + ], + "checks": [], + "excludes": [], + "triggers": [], + "partitionKeys": [], + "partitions": [] + }, + { + "objectType": "TableNormal_PGSQL", + "name": "identifiers", + "comment": "", + "tablespace": "", + "isUnlogged": false, + "owner": "augur", + "inheritFromTables": [], + "hasOIDs": false, + "fillFactor": -1, + "oldName": "identifiers", + "oid": 15487488, + "rows": 0, + "isInheritTables": false, + "cluster": "", + "ACL": "", + "isPartition": false, + "partitioningStrategy": "None", + "partitionOfSchema": "", + "partitionOfTable": "", + "partitionListValues": [], + "partitionRangeFromValues": [], + "partitionRangeToValues": [], + "foreignServer": "", + "foreignOptionDisplay": "", + "fields": [ + { + "objectType": "TableField_PGSQL", + "name": "identifier_id", + "type": "int4", + "length": 32, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": false, + "defaultType": "Others", + "defaultValue": "nextval('spdx.identifiers_identifier_id_seq'::regclass)", + "comment": "", + "oldName": "identifier_id", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 1, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "document_namespace_id", + "type": "int4", + "length": 32, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": false, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "document_namespace_id", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 2, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "id_string", + "type": "varchar", + "length": 255, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": false, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "id_string", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 3, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "document_id", + "type": "int4", + "length": 32, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "document_id", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 4, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "package_id", + "type": "int4", + "length": 32, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "package_id", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 5, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "package_file_id", + "type": "int4", + "length": 32, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "package_file_id", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 6, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + } + ], + "indexes": [], + "rules": [], + "primaryKey": { + "objectType": "PrimaryKey_PGSQL", + "name": "identifiers_pkey", + "fields": [ + "identifier_id" + ], + "fillFactor": -1, + "indexTablespace": "", + "comment": "", + "isDeferrable": false, + "isDeferred": false, + "oldName": "identifiers_pkey" + }, + "foreignKeys": [ + { + "objectType": "ForeignKey_PGSQL", + "name": "identifiers_document_id_fkey", + "fields": [ + "document_id" + ], + "referenceSchema": "spdx", + "referenceTable": "documents", + "referenceFields": [ + "document_id" + ], + "onDelete": "NO ACTION", + "onUpdate": "NO ACTION", + "comment": "", + "isMatchFull": false, + "isDeferrable": false, + "isDeferred": false, + "sourceCardinality": "ZeroOrManyRelationship", + "targetCardinality": "ZeroOrOneRelationship", + "oldName": "identifiers_document_id_fkey" + }, + { + "objectType": "ForeignKey_PGSQL", + "name": "identifiers_document_namespace_id_fkey", + "fields": [ + "document_namespace_id" + ], + "referenceSchema": "spdx", + "referenceTable": "document_namespaces", + "referenceFields": [ + "document_namespace_id" + ], + "onDelete": "NO ACTION", + "onUpdate": "NO ACTION", + "comment": "", + "isMatchFull": false, + "isDeferrable": false, + "isDeferred": false, + "sourceCardinality": "ZeroOrManyRelationship", + "targetCardinality": "OneAndOnlyOneRelationship", + "oldName": "identifiers_document_namespace_id_fkey" + }, + { + "objectType": "ForeignKey_PGSQL", + "name": "identifiers_package_file_id_fkey", + "fields": [ + "package_file_id" + ], + "referenceSchema": "spdx", + "referenceTable": "packages_files", + "referenceFields": [ + "package_file_id" + ], + "onDelete": "NO ACTION", + "onUpdate": "NO ACTION", + "comment": "", + "isMatchFull": false, + "isDeferrable": false, + "isDeferred": false, + "sourceCardinality": "ZeroOrManyRelationship", + "targetCardinality": "ZeroOrOneRelationship", + "oldName": "identifiers_package_file_id_fkey" + }, + { + "objectType": "ForeignKey_PGSQL", + "name": "identifiers_package_id_fkey", + "fields": [ + "package_id" + ], + "referenceSchema": "spdx", + "referenceTable": "packages", + "referenceFields": [ + "package_id" + ], + "onDelete": "NO ACTION", + "onUpdate": "NO ACTION", + "comment": "", + "isMatchFull": false, + "isDeferrable": false, + "isDeferred": false, + "sourceCardinality": "ZeroOrManyRelationship", + "targetCardinality": "ZeroOrOneRelationship", + "oldName": "identifiers_package_id_fkey" + } + ], + "uniques": [ + { + "objectType": "Unique_PGSQL", + "name": "uc_identifier_document_namespace_id", + "fields": [ + "document_namespace_id", + "id_string" + ], + "fillFactor": -1, + "indexTablespace": "", + "comment": "", + "isDeferrable": false, + "isDeferred": false, + "oldName": "uc_identifier_document_namespace_id" + }, + { + "objectType": "Unique_PGSQL", + "name": "uc_identifier_namespace_document_id", + "fields": [ + "document_namespace_id", + "document_id" + ], + "fillFactor": -1, + "indexTablespace": "", + "comment": "", + "isDeferrable": false, + "isDeferred": false, + "oldName": "uc_identifier_namespace_document_id" + }, + { + "objectType": "Unique_PGSQL", + "name": "uc_identifier_namespace_package_id", + "fields": [ + "document_namespace_id", + "package_id" + ], + "fillFactor": -1, + "indexTablespace": "", + "comment": "", + "isDeferrable": false, + "isDeferred": false, + "oldName": "uc_identifier_namespace_package_id" + }, + { + "objectType": "Unique_PGSQL", + "name": "uc_identifier_namespace_package_file_id", + "fields": [ + "document_namespace_id", + "package_file_id" + ], + "fillFactor": -1, + "indexTablespace": "", + "comment": "", + "isDeferrable": false, + "isDeferred": false, + "oldName": "uc_identifier_namespace_package_file_id" + } + ], + "checks": [ + { + "objectType": "Check_PGSQL", + "name": "ck_identifier_exactly_one", + "expression": "((document_id IS NOT NULL)::integer + (package_id IS NOT NULL)::integer + (package_file_id IS NOT NULL)::integer) = 1", + "comment": "", + "isNoInherit": false, + "oldName": "ck_identifier_exactly_one" + } + ], + "excludes": [], + "triggers": [], + "partitionKeys": [], + "partitions": [] + }, + { + "objectType": "TableNormal_PGSQL", + "name": "licenses", + "comment": "", + "tablespace": "", + "isUnlogged": false, + "owner": "augur", + "inheritFromTables": [], + "hasOIDs": false, + "fillFactor": -1, + "oldName": "licenses", + "oid": 15487492, + "rows": 322, + "isInheritTables": false, + "cluster": "", + "ACL": "", + "isPartition": false, + "partitioningStrategy": "None", + "partitionOfSchema": "", + "partitionOfTable": "", + "partitionListValues": [], + "partitionRangeFromValues": [], + "partitionRangeToValues": [], + "foreignServer": "", + "foreignOptionDisplay": "", + "fields": [ + { + "objectType": "TableField_PGSQL", + "name": "license_id", + "type": "int4", + "length": 32, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": false, + "defaultType": "Others", + "defaultValue": "nextval('spdx.licenses_license_id_seq'::regclass)", + "comment": "", + "oldName": "license_id", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 1, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "name", + "type": "varchar", + "length": 255, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "name", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 2, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "short_name", + "type": "varchar", + "length": 255, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": false, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "short_name", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 3, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "cross_reference", + "type": "text", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": false, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "cross_reference", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 4, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": 0, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "comment", + "type": "text", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": false, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "comment", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 5, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "is_spdx_official", + "type": "bool", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": false, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "is_spdx_official", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 6, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + } + ], + "indexes": [], + "rules": [], + "primaryKey": { + "objectType": "PrimaryKey_PGSQL", + "name": "licenses_pkey", + "fields": [ + "license_id" + ], + "fillFactor": -1, + "indexTablespace": "", + "comment": "", + "isDeferrable": false, + "isDeferred": false, + "oldName": "licenses_pkey" + }, + "foreignKeys": [], + "uniques": [ + { + "objectType": "Unique_PGSQL", + "name": "uc_license_short_name", + "fields": [ + "short_name" + ], + "fillFactor": -1, + "indexTablespace": "", + "comment": "", + "isDeferrable": false, + "isDeferred": false, + "oldName": "uc_license_short_name" + } + ], + "checks": [], + "excludes": [], + "triggers": [], + "partitionKeys": [], + "partitions": [] + }, + { + "objectType": "TableNormal_PGSQL", + "name": "packages", + "comment": "", + "tablespace": "", + "isUnlogged": false, + "owner": "augur", + "inheritFromTables": [], + "hasOIDs": false, + "fillFactor": -1, + "oldName": "packages", + "oid": 15487499, + "rows": 0, + "isInheritTables": false, + "cluster": "", + "ACL": "", + "isPartition": false, + "partitioningStrategy": "None", + "partitionOfSchema": "", + "partitionOfTable": "", + "partitionListValues": [], + "partitionRangeFromValues": [], + "partitionRangeToValues": [], + "foreignServer": "", + "foreignOptionDisplay": "", + "fields": [ + { + "objectType": "TableField_PGSQL", + "name": "package_id", + "type": "int4", + "length": 32, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": false, + "defaultType": "Others", + "defaultValue": "nextval('spdx.packages_package_id_seq'::regclass)", + "comment": "", + "oldName": "package_id", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 1, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "name", + "type": "varchar", + "length": 255, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": false, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "name", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 2, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "version", + "type": "varchar", + "length": 255, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": false, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "version", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 3, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "file_name", + "type": "text", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": false, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "file_name", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 4, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": 0, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "supplier_id", + "type": "int4", + "length": 32, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "supplier_id", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 5, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "originator_id", + "type": "int4", + "length": 32, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "originator_id", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 6, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": true, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "download_location", + "type": "text", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "download_location", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 7, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": true, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "verification_code", + "type": "varchar", + "length": 64, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": false, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "verification_code", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 8, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "ver_code_excluded_file_id", + "type": "int4", + "length": 32, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "ver_code_excluded_file_id", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 9, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "sha256", + "type": "varchar", + "length": 64, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "sha256", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 10, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": 0, + "identityMaximum": 0, + "hasNoIdentityMaxValue": null, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "home_page", + "type": "text", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "home_page", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 11, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": 0, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "source_info", + "type": "text", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": false, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "source_info", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 12, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "concluded_license_id", + "type": "int4", + "length": 32, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "concluded_license_id", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 13, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "declared_license_id", + "type": "int4", + "length": 32, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "declared_license_id", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 14, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "license_comment", + "type": "text", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": false, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "license_comment", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 15, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "copyright_text", + "type": "text", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "copyright_text", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 16, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "summary", + "type": "text", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": false, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "summary", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 17, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": true, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "description", + "type": "text", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": false, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "description", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 18, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "comment", + "type": "text", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": false, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "comment", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 19, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": true, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "dosocs2_dir_code", + "type": "varchar", + "length": 64, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "dosocs2_dir_code", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 20, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": true, + "identityMaximum": 0, + "hasNoIdentityMaxValue": true, + "isIdentityCycle": false + } + ], + "indexes": [], + "rules": [], + "primaryKey": { + "objectType": "PrimaryKey_PGSQL", + "name": "packages_pkey", + "fields": [ + "package_id" + ], + "fillFactor": -1, + "indexTablespace": "", + "comment": "", + "isDeferrable": false, + "isDeferred": false, + "oldName": "packages_pkey" + }, + "foreignKeys": [ + { + "objectType": "ForeignKey_PGSQL", + "name": "fk_package_packages_files", + "fields": [ + "ver_code_excluded_file_id" + ], + "referenceSchema": "spdx", + "referenceTable": "packages_files", + "referenceFields": [ + "package_file_id" + ], + "onDelete": "NO ACTION", + "onUpdate": "NO ACTION", + "comment": "", + "isMatchFull": false, + "isDeferrable": false, + "isDeferred": false, + "sourceCardinality": "ZeroOrManyRelationship", + "targetCardinality": "ZeroOrOneRelationship", + "oldName": "fk_package_packages_files" + }, + { + "objectType": "ForeignKey_PGSQL", + "name": "packages_concluded_license_id_fkey", + "fields": [ + "concluded_license_id" + ], + "referenceSchema": "spdx", + "referenceTable": "licenses", + "referenceFields": [ + "license_id" + ], + "onDelete": "NO ACTION", + "onUpdate": "NO ACTION", + "comment": "", + "isMatchFull": false, + "isDeferrable": false, + "isDeferred": false, + "sourceCardinality": "ZeroOrManyRelationship", + "targetCardinality": "ZeroOrOneRelationship", + "oldName": "packages_concluded_license_id_fkey" + }, + { + "objectType": "ForeignKey_PGSQL", + "name": "packages_declared_license_id_fkey", + "fields": [ + "declared_license_id" + ], + "referenceSchema": "spdx", + "referenceTable": "licenses", + "referenceFields": [ + "license_id" + ], + "onDelete": "NO ACTION", + "onUpdate": "NO ACTION", + "comment": "", + "isMatchFull": false, + "isDeferrable": false, + "isDeferred": false, + "sourceCardinality": "ZeroOrManyRelationship", + "targetCardinality": "ZeroOrOneRelationship", + "oldName": "packages_declared_license_id_fkey" + }, + { + "objectType": "ForeignKey_PGSQL", + "name": "packages_originator_id_fkey", + "fields": [ + "originator_id" + ], + "referenceSchema": "spdx", + "referenceTable": "creators", + "referenceFields": [ + "creator_id" + ], + "onDelete": "NO ACTION", + "onUpdate": "NO ACTION", + "comment": "", + "isMatchFull": false, + "isDeferrable": false, + "isDeferred": false, + "sourceCardinality": "ZeroOrManyRelationship", + "targetCardinality": "ZeroOrOneRelationship", + "oldName": "packages_originator_id_fkey" + }, + { + "objectType": "ForeignKey_PGSQL", + "name": "packages_supplier_id_fkey", + "fields": [ + "supplier_id" + ], + "referenceSchema": "spdx", + "referenceTable": "creators", + "referenceFields": [ + "creator_id" + ], + "onDelete": "NO ACTION", + "onUpdate": "NO ACTION", + "comment": "", + "isMatchFull": false, + "isDeferrable": false, + "isDeferred": false, + "sourceCardinality": "ZeroOrManyRelationship", + "targetCardinality": "ZeroOrOneRelationship", + "oldName": "packages_supplier_id_fkey" + } + ], + "uniques": [ + { + "objectType": "Unique_PGSQL", + "name": "uc_package_sha256", + "fields": [ + "sha256" + ], + "fillFactor": -1, + "indexTablespace": "", + "comment": "", + "isDeferrable": false, + "isDeferred": false, + "oldName": "uc_package_sha256" + }, + { + "objectType": "Unique_PGSQL", + "name": "uc_dir_code_ver_code", + "fields": [ + "verification_code", + "dosocs2_dir_code" + ], + "fillFactor": -1, + "indexTablespace": "", + "comment": "", + "isDeferrable": false, + "isDeferred": false, + "oldName": "uc_dir_code_ver_code" + } + ], + "checks": [ + { + "objectType": "Check_PGSQL", + "name": "uc_sha256_ds2_dir_code_exactly_one", + "expression": "((sha256 IS NOT NULL)::integer + (dosocs2_dir_code IS NOT NULL)::integer) = 1", + "comment": "", + "isNoInherit": false, + "oldName": "uc_sha256_ds2_dir_code_exactly_one" + } + ], + "excludes": [], + "triggers": [], + "partitionKeys": [], + "partitions": [] + }, + { + "objectType": "TableNormal_PGSQL", + "name": "packages_files", + "comment": "", + "tablespace": "", + "isUnlogged": false, + "owner": "augur", + "inheritFromTables": [], + "hasOIDs": false, + "fillFactor": -1, + "oldName": "packages_files", + "oid": 15487506, + "rows": 0, + "isInheritTables": false, + "cluster": "", + "ACL": "", + "isPartition": false, + "partitioningStrategy": "None", + "partitionOfSchema": "", + "partitionOfTable": "", + "partitionListValues": [], + "partitionRangeFromValues": [], + "partitionRangeToValues": [], + "foreignServer": "", + "foreignOptionDisplay": "", + "fields": [ + { + "objectType": "TableField_PGSQL", + "name": "package_file_id", + "type": "int4", + "length": 32, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": false, + "defaultType": "Others", + "defaultValue": "nextval('spdx.packages_files_package_file_id_seq'::regclass)", + "comment": "", + "oldName": "package_file_id", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 1, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "package_id", + "type": "int4", + "length": 32, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": false, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "package_id", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 2, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "file_id", + "type": "int4", + "length": 32, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": false, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "file_id", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 3, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "concluded_license_id", + "type": "int4", + "length": 32, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "concluded_license_id", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 4, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": 0, + "identityMaximum": 0, + "hasNoIdentityMaxValue": null, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "license_comment", + "type": "text", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": false, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "license_comment", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 5, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "file_name", + "type": "text", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": false, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "file_name", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 6, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": null, + "identityMaximum": 0, + "hasNoIdentityMaxValue": true, + "isIdentityCycle": false + } + ], + "indexes": [], + "rules": [], + "primaryKey": { + "objectType": "PrimaryKey_PGSQL", + "name": "packages_files_pkey", + "fields": [ + "package_file_id" + ], + "fillFactor": -1, + "indexTablespace": "", + "comment": "", + "isDeferrable": false, + "isDeferred": false, + "oldName": "packages_files_pkey" + }, + "foreignKeys": [ + { + "objectType": "ForeignKey_PGSQL", + "name": "fk_package_files_packages", + "fields": [ + "package_id" + ], + "referenceSchema": "spdx", + "referenceTable": "packages", + "referenceFields": [ + "package_id" + ], + "onDelete": "NO ACTION", + "onUpdate": "NO ACTION", + "comment": "", + "isMatchFull": false, + "isDeferrable": false, + "isDeferred": false, + "sourceCardinality": "ZeroOrManyRelationship", + "targetCardinality": "OneAndOnlyOneRelationship", + "oldName": "fk_package_files_packages" + }, + { + "objectType": "ForeignKey_PGSQL", + "name": "packages_files_concluded_license_id_fkey", + "fields": [ + "concluded_license_id" + ], + "referenceSchema": "spdx", + "referenceTable": "licenses", + "referenceFields": [ + "license_id" + ], + "onDelete": "NO ACTION", + "onUpdate": "NO ACTION", + "comment": "", + "isMatchFull": false, + "isDeferrable": false, + "isDeferred": false, + "sourceCardinality": "ZeroOrManyRelationship", + "targetCardinality": "ZeroOrOneRelationship", + "oldName": "packages_files_concluded_license_id_fkey" + }, + { + "objectType": "ForeignKey_PGSQL", + "name": "packages_files_file_id_fkey", + "fields": [ + "file_id" + ], + "referenceSchema": "spdx", + "referenceTable": "files", + "referenceFields": [ + "file_id" + ], + "onDelete": "NO ACTION", + "onUpdate": "NO ACTION", + "comment": "", + "isMatchFull": false, + "isDeferrable": false, + "isDeferred": false, + "sourceCardinality": "ZeroOrManyRelationship", + "targetCardinality": "OneAndOnlyOneRelationship", + "oldName": "packages_files_file_id_fkey" + } + ], + "uniques": [ + { + "objectType": "Unique_PGSQL", + "name": "uc_package_id_file_name", + "fields": [ + "package_id", + "file_name" + ], + "fillFactor": -1, + "indexTablespace": "", + "comment": "", + "isDeferrable": false, + "isDeferred": false, + "oldName": "uc_package_id_file_name" + } + ], + "checks": [], + "excludes": [], + "triggers": [], + "partitionKeys": [], + "partitions": [] + }, + { + "objectType": "TableNormal_PGSQL", + "name": "packages_scans", + "comment": "", + "tablespace": "", + "isUnlogged": false, + "owner": "augur", + "inheritFromTables": [], + "hasOIDs": false, + "fillFactor": -1, + "oldName": "packages_scans", + "oid": 15487513, + "rows": 0, + "isInheritTables": false, + "cluster": "", + "ACL": "", + "isPartition": false, + "partitioningStrategy": "None", + "partitionOfSchema": "", + "partitionOfTable": "", + "partitionListValues": [], + "partitionRangeFromValues": [], + "partitionRangeToValues": [], + "foreignServer": "", + "foreignOptionDisplay": "", + "fields": [ + { + "objectType": "TableField_PGSQL", + "name": "package_scan_id", + "type": "int4", + "length": 32, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": false, + "defaultType": "Others", + "defaultValue": "nextval('spdx.packages_scans_package_scan_id_seq'::regclass)", + "comment": "", + "oldName": "package_scan_id", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 1, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": 0, + "identityMaximum": 0, + "hasNoIdentityMaxValue": null, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "package_id", + "type": "int4", + "length": 32, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": false, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "package_id", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 2, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "scanner_id", + "type": "int4", + "length": 32, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": false, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "scanner_id", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 3, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": null, + "identityMaximum": 0, + "hasNoIdentityMaxValue": true, + "isIdentityCycle": false + } + ], + "indexes": [], + "rules": [], + "primaryKey": { + "objectType": "PrimaryKey_PGSQL", + "name": "packages_scans_pkey", + "fields": [ + "package_scan_id" + ], + "fillFactor": -1, + "indexTablespace": "", + "comment": "", + "isDeferrable": false, + "isDeferred": false, + "oldName": "packages_scans_pkey" + }, + "foreignKeys": [ + { + "objectType": "ForeignKey_PGSQL", + "name": "packages_scans_package_id_fkey", + "fields": [ + "package_id" + ], + "referenceSchema": "spdx", + "referenceTable": "packages", + "referenceFields": [ + "package_id" + ], + "onDelete": "NO ACTION", + "onUpdate": "NO ACTION", + "comment": "", + "isMatchFull": false, + "isDeferrable": false, + "isDeferred": false, + "sourceCardinality": "ZeroOrManyRelationship", + "targetCardinality": "OneAndOnlyOneRelationship", + "oldName": "packages_scans_package_id_fkey" + }, + { + "objectType": "ForeignKey_PGSQL", + "name": "packages_scans_scanner_id_fkey", + "fields": [ + "scanner_id" + ], + "referenceSchema": "spdx", + "referenceTable": "scanners", + "referenceFields": [ + "scanner_id" + ], + "onDelete": "NO ACTION", + "onUpdate": "NO ACTION", + "comment": "", + "isMatchFull": false, + "isDeferrable": false, + "isDeferred": false, + "sourceCardinality": "ZeroOrManyRelationship", + "targetCardinality": "OneAndOnlyOneRelationship", + "oldName": "packages_scans_scanner_id_fkey" + } + ], + "uniques": [ + { + "objectType": "Unique_PGSQL", + "name": "uc_package_scanner_id", + "fields": [ + "package_id", + "scanner_id" + ], + "fillFactor": -1, + "indexTablespace": "", + "comment": "", + "isDeferrable": false, + "isDeferred": false, + "oldName": "uc_package_scanner_id" + } + ], + "checks": [], + "excludes": [], + "triggers": [], + "partitionKeys": [], + "partitions": [] + }, + { + "objectType": "TableNormal_PGSQL", + "name": "projects", + "comment": "", + "tablespace": "", + "isUnlogged": false, + "owner": "augur", + "inheritFromTables": [], + "hasOIDs": false, + "fillFactor": -1, + "oldName": "projects", + "oid": 15487517, + "rows": 0, + "isInheritTables": false, + "cluster": "", + "ACL": "", + "isPartition": false, + "partitioningStrategy": "None", + "partitionOfSchema": "", + "partitionOfTable": "", + "partitionListValues": [], + "partitionRangeFromValues": [], + "partitionRangeToValues": [], + "foreignServer": "", + "foreignOptionDisplay": "", + "fields": [ + { + "objectType": "TableField_PGSQL", + "name": "package_id", + "type": "int4", + "length": 32, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": false, + "defaultType": "Others", + "defaultValue": "nextval('spdx.projects_package_id_seq'::regclass)", + "comment": "", + "oldName": "package_id", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 1, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "name", + "type": "text", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": false, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "name", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 2, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": null, + "identityMaximum": 0, + "hasNoIdentityMaxValue": true, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "homepage", + "type": "text", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": false, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "homepage", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 3, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": 0, + "identityMaximum": 0, + "hasNoIdentityMaxValue": null, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "uri", + "type": "text", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": false, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "uri", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 4, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + } + ], + "indexes": [], + "rules": [], + "primaryKey": { + "objectType": "PrimaryKey_PGSQL", + "name": "projects_pkey", + "fields": [ + "package_id" + ], + "fillFactor": -1, + "indexTablespace": "", + "comment": "", + "isDeferrable": false, + "isDeferred": false, + "oldName": "projects_pkey" + }, + "foreignKeys": [], + "uniques": [], + "checks": [], + "excludes": [], + "triggers": [], + "partitionKeys": [], + "partitions": [] + }, + { + "objectType": "TableNormal_PGSQL", + "name": "relationship_types", + "comment": "", + "tablespace": "", + "isUnlogged": false, + "owner": "augur", + "inheritFromTables": [], + "hasOIDs": false, + "fillFactor": -1, + "oldName": "relationship_types", + "oid": 15487524, + "rows": 30, + "isInheritTables": false, + "cluster": "", + "ACL": "", + "isPartition": false, + "partitioningStrategy": "None", + "partitionOfSchema": "", + "partitionOfTable": "", + "partitionListValues": [], + "partitionRangeFromValues": [], + "partitionRangeToValues": [], + "foreignServer": "", + "foreignOptionDisplay": "", + "fields": [ + { + "objectType": "TableField_PGSQL", + "name": "relationship_type_id", + "type": "int4", + "length": 32, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": false, + "defaultType": "Others", + "defaultValue": "nextval('spdx.relationship_types_relationship_type_id_seq'::regclass)", + "comment": "", + "oldName": "relationship_type_id", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 1, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": null, + "identityMaximum": 0, + "hasNoIdentityMaxValue": true, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "name", + "type": "varchar", + "length": 255, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": false, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "name", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 2, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": 0, + "identityMaximum": 0, + "hasNoIdentityMaxValue": null, + "isIdentityCycle": false + } + ], + "indexes": [], + "rules": [], + "primaryKey": { + "objectType": "PrimaryKey_PGSQL", + "name": "relationship_types_pkey", + "fields": [ + "relationship_type_id" + ], + "fillFactor": -1, + "indexTablespace": "", + "comment": "", + "isDeferrable": false, + "isDeferred": false, + "oldName": "relationship_types_pkey" + }, + "foreignKeys": [], + "uniques": [ + { + "objectType": "Unique_PGSQL", + "name": "uc_relationship_type_name", + "fields": [ + "name" + ], + "fillFactor": -1, + "indexTablespace": "", + "comment": "", + "isDeferrable": false, + "isDeferred": false, + "oldName": "uc_relationship_type_name" + } + ], + "checks": [], + "excludes": [], + "triggers": [], + "partitionKeys": [], + "partitions": [] + }, + { + "objectType": "TableNormal_PGSQL", + "name": "relationships", + "comment": "", + "tablespace": "", + "isUnlogged": false, + "owner": "augur", + "inheritFromTables": [], + "hasOIDs": false, + "fillFactor": -1, + "oldName": "relationships", + "oid": 15487528, + "rows": 0, + "isInheritTables": false, + "cluster": "", + "ACL": "", + "isPartition": false, + "partitioningStrategy": "None", + "partitionOfSchema": "", + "partitionOfTable": "", + "partitionListValues": [], + "partitionRangeFromValues": [], + "partitionRangeToValues": [], + "foreignServer": "", + "foreignOptionDisplay": "", + "fields": [ + { + "objectType": "TableField_PGSQL", + "name": "relationship_id", + "type": "int4", + "length": 32, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": false, + "defaultType": "Others", + "defaultValue": "nextval('spdx.relationships_relationship_id_seq'::regclass)", + "comment": "", + "oldName": "relationship_id", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 1, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": true, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "left_identifier_id", + "type": "int4", + "length": 32, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": false, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "left_identifier_id", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 2, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": null, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "right_identifier_id", + "type": "int4", + "length": 32, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": false, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "right_identifier_id", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 3, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "relationship_type_id", + "type": "int4", + "length": 32, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": false, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "relationship_type_id", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 4, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "relationship_comment", + "type": "text", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": false, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "relationship_comment", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 5, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + } + ], + "indexes": [], + "rules": [], + "primaryKey": { + "objectType": "PrimaryKey_PGSQL", + "name": "relationships_pkey", + "fields": [ + "relationship_id" + ], + "fillFactor": -1, + "indexTablespace": "", + "comment": "", + "isDeferrable": false, + "isDeferred": false, + "oldName": "relationships_pkey" + }, + "foreignKeys": [ + { + "objectType": "ForeignKey_PGSQL", + "name": "relationships_left_identifier_id_fkey", + "fields": [ + "left_identifier_id" + ], + "referenceSchema": "spdx", + "referenceTable": "identifiers", + "referenceFields": [ + "identifier_id" + ], + "onDelete": "NO ACTION", + "onUpdate": "NO ACTION", + "comment": "", + "isMatchFull": false, + "isDeferrable": false, + "isDeferred": false, + "sourceCardinality": "ZeroOrManyRelationship", + "targetCardinality": "OneAndOnlyOneRelationship", + "oldName": "relationships_left_identifier_id_fkey" + }, + { + "objectType": "ForeignKey_PGSQL", + "name": "relationships_relationship_type_id_fkey", + "fields": [ + "relationship_type_id" + ], + "referenceSchema": "spdx", + "referenceTable": "relationship_types", + "referenceFields": [ + "relationship_type_id" + ], + "onDelete": "NO ACTION", + "onUpdate": "NO ACTION", + "comment": "", + "isMatchFull": false, + "isDeferrable": false, + "isDeferred": false, + "sourceCardinality": "ZeroOrManyRelationship", + "targetCardinality": "OneAndOnlyOneRelationship", + "oldName": "relationships_relationship_type_id_fkey" + }, + { + "objectType": "ForeignKey_PGSQL", + "name": "relationships_right_identifier_id_fkey", + "fields": [ + "right_identifier_id" + ], + "referenceSchema": "spdx", + "referenceTable": "identifiers", + "referenceFields": [ + "identifier_id" + ], + "onDelete": "NO ACTION", + "onUpdate": "NO ACTION", + "comment": "", + "isMatchFull": false, + "isDeferrable": false, + "isDeferred": false, + "sourceCardinality": "ZeroOrManyRelationship", + "targetCardinality": "OneAndOnlyOneRelationship", + "oldName": "relationships_right_identifier_id_fkey" + } + ], + "uniques": [ + { + "objectType": "Unique_PGSQL", + "name": "uc_left_right_relationship_type", + "fields": [ + "left_identifier_id", + "right_identifier_id", + "relationship_type_id" + ], + "fillFactor": -1, + "indexTablespace": "", + "comment": "", + "isDeferrable": false, + "isDeferred": false, + "oldName": "uc_left_right_relationship_type" + } + ], + "checks": [], + "excludes": [], + "triggers": [], + "partitionKeys": [], + "partitions": [] + }, + { + "objectType": "TableNormal_PGSQL", + "name": "sbom_scans", + "comment": "", + "tablespace": "", + "isUnlogged": false, + "owner": "augur", + "inheritFromTables": [], + "hasOIDs": false, + "fillFactor": -1, + "oldName": "sbom_scans", + "oid": 15487535, + "rows": 0, + "isInheritTables": false, + "cluster": "", + "ACL": "", + "isPartition": false, + "partitioningStrategy": "None", + "partitionOfSchema": "", + "partitionOfTable": "", + "partitionListValues": [], + "partitionRangeFromValues": [], + "partitionRangeToValues": [], + "foreignServer": "", + "foreignOptionDisplay": "", + "fields": [ + { + "objectType": "TableField_PGSQL", + "name": "repo_id", + "type": "int4", + "length": 32, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "repo_id", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 1, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": 0, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "sbom_scan", + "type": "json", + "length": 0, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": true, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "sbom_scan", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 2, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": true, + "identityMaximum": 0, + "hasNoIdentityMaxValue": true, + "isIdentityCycle": false + } + ], + "indexes": [], + "rules": [], + "foreignKeys": [], + "uniques": [], + "checks": [], + "excludes": [], + "triggers": [], + "partitionKeys": [], + "partitions": [] + }, + { + "objectType": "TableNormal_PGSQL", + "name": "scanners", + "comment": "", + "tablespace": "", + "isUnlogged": false, + "owner": "augur", + "inheritFromTables": [], + "hasOIDs": false, + "fillFactor": -1, + "oldName": "scanners", + "oid": 15487541, + "rows": 0, + "isInheritTables": false, + "cluster": "", + "ACL": "", + "isPartition": false, + "partitioningStrategy": "None", + "partitionOfSchema": "", + "partitionOfTable": "", + "partitionListValues": [], + "partitionRangeFromValues": [], + "partitionRangeToValues": [], + "foreignServer": "", + "foreignOptionDisplay": "", + "fields": [ + { + "objectType": "TableField_PGSQL", + "name": "scanner_id", + "type": "int4", + "length": 32, + "decimals": 0, + "dimensions": 0, + "collation": "", + "isNullable": false, + "defaultType": "Others", + "defaultValue": "nextval('spdx.scanners_scanner_id_seq'::regclass)", + "comment": "", + "oldName": "scanner_id", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "", + "ordinalPosition": 1, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + }, + { + "objectType": "TableField_PGSQL", + "name": "name", + "type": "varchar", + "length": 255, + "decimals": 0, + "dimensions": 0, + "collation": "default", + "isNullable": false, + "defaultType": "None", + "defaultValue": "", + "comment": "", + "oldName": "name", + "typeOID": 1, + "fieldObjectType": "", + "objectTypeSchema": "", + "isDomainType": false, + "collationSchema": "pg_catalog", + "ordinalPosition": 2, + "foreignOptions": [], + "isIdentity": false, + "identityGeneration": "None", + "identityStart": 0, + "identityIncrement": 0, + "identityMinimum": 0, + "hasNoIdentityMinValue": false, + "identityMaximum": 0, + "hasNoIdentityMaxValue": false, + "isIdentityCycle": false + } + ], + "indexes": [], + "rules": [], + "primaryKey": { + "objectType": "PrimaryKey_PGSQL", + "name": "scanners_pkey", + "fields": [ + "scanner_id" + ], + "fillFactor": -1, + "indexTablespace": "", + "comment": "", + "isDeferrable": false, + "isDeferred": false, + "oldName": "scanners_pkey" + }, + "foreignKeys": [], + "uniques": [ + { + "objectType": "Unique_PGSQL", + "name": "uc_scanner_name", + "fields": [ + "name" + ], + "fillFactor": -1, + "indexTablespace": "", + "comment": "", + "isDeferrable": false, + "isDeferred": false, + "oldName": "uc_scanner_name" + } + ], + "checks": [], + "excludes": [], + "triggers": [], + "partitionKeys": [], + "partitions": [] + } + ], + "views": [] + } + ] + } + ] + }, + "diagrams": [ + { + "name": "Diagram 1", + "paperWidth": 8, + "paperHeight": 7, + "tableFont": "Arial Unicode MS", + "tableFontSize": 14, + "isBalckWhite": false, + "showDBSchemaName": true, + "showViewRelations": true, + "notation": "default", + "showFieldComment": false, + "showTableComment": false, + "shapes": [ + { + "type": "table", + "schemaName": "augur_data", + "tableName": "analysis_log", + "x": 1744, + "y": 2714, + "width": 204, + "height": 114, + "isBold": false, + "titleColor": { + "r": 55, + "g": 131, + "b": 192, + "a": 1 + } + }, + { + "type": "table", + "schemaName": "augur_data", + "tableName": "chaoss_metric_status", + "x": 6530, + "y": 30, + "width": 256, + "height": 408, + "isBold": false, + "titleColor": { + "r": 55, + "g": 131, + "b": 192, + "a": 1 + } + }, + { + "type": "table", + "schemaName": "augur_data", + "tableName": "commit_comment_ref", + "x": 3280, + "y": 4490, + "width": 255, + "height": 345, + "isBold": false, + "titleColor": { + "r": 55, + "g": 131, + "b": 192, + "a": 1 + } + }, + { + "type": "table", + "schemaName": "augur_data", + "tableName": "commit_parents", + "x": 3600, + "y": 5020, + "width": 230, + "height": 177, + "isBold": false, + "titleColor": { + "r": 55, + "g": 131, + "b": 192, + "a": 1 + } + }, + { + "type": "table", + "schemaName": "augur_data", + "tableName": "commits", + "x": 3580, + "y": 4350, + "width": 270, + "height": 618, + "isBold": false, + "titleColor": { + "r": 55, + "g": 131, + "b": 192, + "a": 1 + } + }, + { + "type": "table", + "schemaName": "augur_data", + "tableName": "contributor_affiliations", + "x": 1249, + "y": 2704, + "width": 236, + "height": 261, + "isBold": false, + "titleColor": { + "r": 55, + "g": 131, + "b": 192, + "a": 1 + } + }, + { + "type": "table", + "schemaName": "augur_data", + "tableName": "contributor_repo", + "x": 4230, + "y": 3780, + "width": 230, + "height": 303, + "isBold": false, + "titleColor": { + "r": 55, + "g": 131, + "b": 192, + "a": 1 + } + }, + { + "type": "table", + "schemaName": "augur_data", + "tableName": "contributors", + "x": 4300, + "y": 2680, + "width": 251, + "height": 996, + "isBold": false, + "titleColor": { + "r": 55, + "g": 131, + "b": 192, + "a": 1 + } + }, + { + "type": "table", + "schemaName": "augur_data", + "tableName": "contributors_aliases", + "x": 4600, + "y": 3550, + "width": 230, + "height": 261, + "isBold": false, + "titleColor": { + "r": 55, + "g": 131, + "b": 192, + "a": 1 + } + }, + { + "type": "table", + "schemaName": "augur_data", + "tableName": "contributors_history", + "x": 4880, + "y": 3450, + "width": 251, + "height": 996, + "isBold": false, + "titleColor": { + "r": 55, + "g": 131, + "b": 192, + "a": 1 + } + }, + { + "type": "table", + "schemaName": "augur_data", + "tableName": "discourse_insights", + "x": 2850, + "y": 5570, + "width": 239, + "height": 198, + "isBold": false, + "titleColor": { + "r": 55, + "g": 131, + "b": 192, + "a": 1 + } + }, + { + "type": "table", + "schemaName": "augur_data", + "tableName": "dm_repo_annual", + "x": 1819, + "y": 2235, + "width": 230, + "height": 324, + "isBold": false, + "titleColor": { + "r": 55, + "g": 131, + "b": 192, + "a": 1 + } + }, + { + "type": "table", + "schemaName": "augur_data", + "tableName": "dm_repo_group_annual", + "x": 1821, + "y": 1853, + "width": 247, + "height": 324, + "isBold": false, + "titleColor": { + "r": 55, + "g": 131, + "b": 192, + "a": 1 + } + }, + { + "type": "table", + "schemaName": "augur_data", + "tableName": "dm_repo_group_monthly", + "x": 1527, + "y": 1842, + "width": 254, + "height": 345, + "isBold": false, + "titleColor": { + "r": 55, + "g": 131, + "b": 192, + "a": 1 + } + }, + { + "type": "table", + "schemaName": "augur_data", + "tableName": "dm_repo_group_weekly", + "x": 1244, + "y": 1833, + "width": 248, + "height": 345, + "isBold": false, + "titleColor": { + "r": 55, + "g": 131, + "b": 192, + "a": 1 + } + }, + { + "type": "table", + "schemaName": "augur_data", + "tableName": "dm_repo_monthly", + "x": 1536, + "y": 2227, + "width": 230, + "height": 345, + "isBold": false, + "titleColor": { + "r": 55, + "g": 131, + "b": 192, + "a": 1 + } + }, + { + "type": "table", + "schemaName": "augur_data", + "tableName": "dm_repo_weekly", + "x": 1240, + "y": 2195, + "width": 230, + "height": 345, + "isBold": false, + "titleColor": { + "r": 55, + "g": 131, + "b": 192, + "a": 1 + } + }, + { + "type": "table", + "schemaName": "augur_data", + "tableName": "exclude", + "x": 1745, + "y": 2848, + "width": 159, + "height": 135, + "isBold": false, + "titleColor": { + "r": 55, + "g": 131, + "b": 192, + "a": 1 + } + }, + { + "type": "table", + "schemaName": "augur_data", + "tableName": "issue_assignees", + "x": 4730, + "y": 2780, + "width": 230, + "height": 240, + "isBold": false, + "titleColor": { + "r": 55, + "g": 131, + "b": 192, + "a": 1 + } + }, + { + "type": "table", + "schemaName": "augur_data", + "tableName": "issue_events", + "x": 4660, + "y": 3070, + "width": 230, + "height": 324, + "isBold": false, + "titleColor": { + "r": 55, + "g": 131, + "b": 192, + "a": 1 + } + }, + { + "type": "table", + "schemaName": "augur_data", + "tableName": "issue_labels", + "x": 5350, + "y": 2820, + "width": 230, + "height": 282, + "isBold": false, + "titleColor": { + "r": 55, + "g": 131, + "b": 192, + "a": 1 + } + }, + { + "type": "table", + "schemaName": "augur_data", + "tableName": "issue_message_ref", + "x": 4990, + "y": 4820, + "width": 240, + "height": 261, + "isBold": false, + "titleColor": { + "r": 55, + "g": 131, + "b": 192, + "a": 1 + } + }, + { + "type": "table", + "schemaName": "augur_data", + "tableName": "issues", + "x": 5070, + "y": 2640, + "width": 230, + "height": 639, + "isBold": false, + "titleColor": { + "r": 55, + "g": 131, + "b": 192, + "a": 1 + } + }, + { + "type": "table", + "schemaName": "augur_data", + "tableName": "libraries", + "x": 5240, + "y": 600, + "width": 255, + "height": 492, + "isBold": false, + "titleColor": { + "r": 55, + "g": 131, + "b": 192, + "a": 1 + } + }, + { + "type": "table", + "schemaName": "augur_data", + "tableName": "library_dependencies", + "x": 5250, + "y": 1150, + "width": 233, + "height": 261, + "isBold": false, + "titleColor": { + "r": 55, + "g": 131, + "b": 192, + "a": 1 + } + }, + { + "type": "table", + "schemaName": "augur_data", + "tableName": "library_version", + "x": 5550, + "y": 730, + "width": 235, + "height": 240, + "isBold": false, + "titleColor": { + "r": 55, + "g": 131, + "b": 192, + "a": 1 + } + }, + { + "type": "table", + "schemaName": "augur_data", + "tableName": "lstm_anomaly_models", + "x": 6200, + "y": 270, + "width": 238, + "height": 282, + "isBold": false, + "titleColor": { + "r": 55, + "g": 131, + "b": 192, + "a": 1 + } + }, + { + "type": "table", + "schemaName": "augur_data", + "tableName": "lstm_anomaly_results", + "x": 5900, + "y": 230, + "width": 255, + "height": 366, + "isBold": false, + "titleColor": { + "r": 55, + "g": 131, + "b": 192, + "a": 1 + } + }, + { + "type": "table", + "schemaName": "augur_data", + "tableName": "message", + "x": 3140, + "y": 5370, + "width": 230, + "height": 345, + "isBold": false, + "titleColor": { + "r": 55, + "g": 131, + "b": 192, + "a": 1 + } + }, + { + "type": "table", + "schemaName": "augur_data", + "tableName": "message_analysis", + "x": 3140, + "y": 5760, + "width": 230, + "height": 282, + "isBold": false, + "titleColor": { + "r": 55, + "g": 131, + "b": 192, + "a": 1 + } + }, + { + "type": "table", + "schemaName": "augur_data", + "tableName": "message_analysis_summary", + "x": 370, + "y": 30, + "width": 279, + "height": 282, + "isBold": false, + "titleColor": { + "r": 55, + "g": 131, + "b": 192, + "a": 1 + } + }, + { + "type": "table", + "schemaName": "augur_data", + "tableName": "message_sentiment", + "x": 5260, + "y": 5400, + "width": 230, + "height": 282, + "isBold": false, + "titleColor": { + "r": 55, + "g": 131, + "b": 192, + "a": 1 + } + }, + { + "type": "table", + "schemaName": "augur_data", + "tableName": "message_sentiment_summary", + "x": 30, + "y": 470, + "width": 290, + "height": 282, + "isBold": false, + "titleColor": { + "r": 55, + "g": 131, + "b": 192, + "a": 1 + } + }, + { + "type": "table", + "schemaName": "augur_data", + "tableName": "platform", + "x": 5090, + "y": 5130, + "width": 230, + "height": 219, + "isBold": false, + "titleColor": { + "r": 55, + "g": 131, + "b": 192, + "a": 1 + } + }, + { + "type": "table", + "schemaName": "augur_data", + "tableName": "pull_request_analysis", + "x": 4760, + "y": 1900, + "width": 243, + "height": 219, + "isBold": false, + "titleColor": { + "r": 55, + "g": 131, + "b": 192, + "a": 1 + } + }, + { + "type": "table", + "schemaName": "augur_data", + "tableName": "pull_request_assignees", + "x": 3360, + "y": 2900, + "width": 246, + "height": 219, + "isBold": false, + "titleColor": { + "r": 55, + "g": 131, + "b": 192, + "a": 1 + } + }, + { + "type": "table", + "schemaName": "augur_data", + "tableName": "pull_request_commits", + "x": 3610, + "y": 2530, + "width": 235, + "height": 324, + "isBold": false, + "titleColor": { + "r": 55, + "g": 131, + "b": 192, + "a": 1 + } + }, + { + "type": "table", + "schemaName": "augur_data", + "tableName": "pull_request_events", + "x": 3720, + "y": 2900, + "width": 230, + "height": 324, + "isBold": false, + "titleColor": { + "r": 55, + "g": 131, + "b": 192, + "a": 1 + } + }, + { + "type": "table", + "schemaName": "augur_data", + "tableName": "pull_request_files", + "x": 3550, + "y": 1550, + "width": 230, + "height": 240, + "isBold": false, + "titleColor": { + "r": 55, + "g": 131, + "b": 192, + "a": 1 + } + }, + { + "type": "table", + "schemaName": "augur_data", + "tableName": "pull_request_labels", + "x": 3440, + "y": 1190, + "width": 230, + "height": 303, + "isBold": false, + "titleColor": { + "r": 55, + "g": 131, + "b": 192, + "a": 1 + } + }, + { + "type": "table", + "schemaName": "augur_data", + "tableName": "pull_request_message_ref", + "x": 2940, + "y": 2010, + "width": 263, + "height": 261, + "isBold": false, + "titleColor": { + "r": 55, + "g": 131, + "b": 192, + "a": 1 + } + }, + { + "type": "table", + "schemaName": "augur_data", + "tableName": "pull_request_meta", + "x": 4480, + "y": 1990, + "width": 230, + "height": 282, + "isBold": false, + "titleColor": { + "r": 55, + "g": 131, + "b": 192, + "a": 1 + } + }, + { + "type": "table", + "schemaName": "augur_data", + "tableName": "pull_request_repo", + "x": 4200, + "y": 1970, + "width": 230, + "height": 324, + "isBold": false, + "titleColor": { + "r": 55, + "g": 131, + "b": 192, + "a": 1 + } + }, + { + "type": "table", + "schemaName": "augur_data", + "tableName": "pull_request_review_message_ref", + "x": 3220, + "y": 3730, + "width": 311, + "height": 639, + "isBold": false, + "titleColor": { + "r": 55, + "g": 131, + "b": 192, + "a": 1 + } + }, + { + "type": "table", + "schemaName": "augur_data", + "tableName": "pull_request_reviewers", + "x": 4000, + "y": 2900, + "width": 243, + "height": 219, + "isBold": false, + "titleColor": { + "r": 55, + "g": 131, + "b": 192, + "a": 1 + } + }, + { + "type": "table", + "schemaName": "augur_data", + "tableName": "pull_request_reviews", + "x": 3220, + "y": 3300, + "width": 249, + "height": 387, + "isBold": false, + "titleColor": { + "r": 55, + "g": 131, + "b": 192, + "a": 1 + } + }, + { + "type": "table", + "schemaName": "augur_data", + "tableName": "pull_request_teams", + "x": 3360, + "y": 670, + "width": 244, + "height": 408, + "isBold": false, + "titleColor": { + "r": 55, + "g": 131, + "b": 192, + "a": 1 + } + }, + { + "type": "table", + "schemaName": "augur_data", + "tableName": "pull_requests", + "x": 3260, + "y": 1700, + "width": 245, + "height": 891, + "isBold": false, + "titleColor": { + "r": 55, + "g": 131, + "b": 192, + "a": 1 + } + }, + { + "type": "table", + "schemaName": "augur_data", + "tableName": "releases", + "x": 190, + "y": 5970, + "width": 234, + "height": 408, + "isBold": false, + "titleColor": { + "r": 55, + "g": 131, + "b": 192, + "a": 1 + } + }, + { + "type": "table", + "schemaName": "augur_data", + "tableName": "repo", + "x": 370, + "y": 360, + "width": 289, + "height": 492, + "isBold": false, + "titleColor": { + "r": 55, + "g": 131, + "b": 192, + "a": 1 + } + }, + { + "type": "table", + "schemaName": "augur_data", + "tableName": "repo_badging", + "x": 480, + "y": 5970, + "width": 230, + "height": 219, + "isBold": false, + "titleColor": { + "r": 55, + "g": 131, + "b": 192, + "a": 1 + } + }, + { + "type": "table", + "schemaName": "augur_data", + "tableName": "repo_cluster_messages", + "x": 450, + "y": 5640, + "width": 248, + "height": 219, + "isBold": false, + "titleColor": { + "r": 55, + "g": 131, + "b": 192, + "a": 1 + } + }, + { + "type": "table", + "schemaName": "augur_data", + "tableName": "repo_dependencies", + "x": 470, + "y": 5290, + "width": 230, + "height": 240, + "isBold": false, + "titleColor": { + "r": 55, + "g": 131, + "b": 192, + "a": 1 + } + }, + { + "type": "table", + "schemaName": "augur_data", + "tableName": "repo_deps_scorecard", + "x": 480, + "y": 4930, + "width": 234, + "height": 240, + "isBold": false, + "titleColor": { + "r": 55, + "g": 131, + "b": 192, + "a": 1 + } + }, + { + "type": "table", + "schemaName": "augur_data", + "tableName": "repo_group_insights", + "x": 1990, + "y": 5280, + "width": 230, + "height": 261, + "isBold": false, + "titleColor": { + "r": 55, + "g": 131, + "b": 192, + "a": 1 + } + }, + { + "type": "table", + "schemaName": "augur_data", + "tableName": "repo_groups", + "x": 2270, + "y": 5270, + "width": 230, + "height": 282, + "isBold": false, + "titleColor": { + "r": 55, + "g": 131, + "b": 192, + "a": 1 + } + }, + { + "type": "table", + "schemaName": "augur_data", + "tableName": "repo_groups_list_serve", + "x": 2550, + "y": 5280, + "width": 244, + "height": 261, + "isBold": false, + "titleColor": { + "r": 55, + "g": 131, + "b": 192, + "a": 1 + } + }, + { + "type": "table", + "schemaName": "augur_data", + "tableName": "repo_info", + "x": 500, + "y": 4040, + "width": 251, + "height": 786, + "isBold": false, + "titleColor": { + "r": 55, + "g": 131, + "b": 192, + "a": 1 + } + }, + { + "type": "table", + "schemaName": "augur_data", + "tableName": "repo_insights", + "x": 510, + "y": 3600, + "width": 230, + "height": 324, + "isBold": false, + "titleColor": { + "r": 55, + "g": 131, + "b": 192, + "a": 1 + } + }, + { + "type": "table", + "schemaName": "augur_data", + "tableName": "repo_insights_records", + "x": 520, + "y": 3190, + "width": 237, + "height": 303, + "isBold": false, + "titleColor": { + "r": 55, + "g": 131, + "b": 192, + "a": 1 + } + }, + { + "type": "table", + "schemaName": "augur_data", + "tableName": "repo_labor", + "x": 540, + "y": 2670, + "width": 245, + "height": 408, + "isBold": false, + "titleColor": { + "r": 55, + "g": 131, + "b": 192, + "a": 1 + } + }, + { + "type": "table", + "schemaName": "augur_data", + "tableName": "repo_meta", + "x": 550, + "y": 2330, + "width": 230, + "height": 219, + "isBold": false, + "titleColor": { + "r": 55, + "g": 131, + "b": 192, + "a": 1 + } + }, + { + "type": "table", + "schemaName": "augur_data", + "tableName": "repo_sbom_scans", + "x": 570, + "y": 2110, + "width": 213, + "height": 114, + "isBold": false, + "titleColor": { + "r": 55, + "g": 131, + "b": 192, + "a": 1 + } + }, + { + "type": "table", + "schemaName": "augur_data", + "tableName": "repo_stats", + "x": 580, + "y": 1780, + "width": 230, + "height": 219, + "isBold": false, + "titleColor": { + "r": 55, + "g": 131, + "b": 192, + "a": 1 + } + }, + { + "type": "table", + "schemaName": "augur_data", + "tableName": "repo_test_coverage", + "x": 590, + "y": 1300, + "width": 230, + "height": 366, + "isBold": false, + "titleColor": { + "r": 55, + "g": 131, + "b": 192, + "a": 1 + } + }, + { + "type": "table", + "schemaName": "augur_data", + "tableName": "repo_topic", + "x": 610, + "y": 970, + "width": 230, + "height": 219, + "isBold": false, + "titleColor": { + "r": 55, + "g": 131, + "b": 192, + "a": 1 + } + }, + { + "type": "table", + "schemaName": "augur_data", + "tableName": "repos_fetch_log", + "x": 1937, + "y": 2876, + "width": 198, + "height": 114, + "isBold": false, + "titleColor": { + "r": 55, + "g": 131, + "b": 192, + "a": 1 + } + }, + { + "type": "table", + "schemaName": "augur_data", + "tableName": "settings", + "x": 1956, + "y": 2716, + "width": 191, + "height": 135, + "isBold": false, + "titleColor": { + "r": 55, + "g": 131, + "b": 192, + "a": 1 + } + }, + { + "type": "table", + "schemaName": "augur_data", + "tableName": "topic_words", + "x": 7480, + "y": 30, + "width": 230, + "height": 219, + "isBold": false, + "titleColor": { + "r": 55, + "g": 131, + "b": 192, + "a": 1 + } + }, + { + "type": "table", + "schemaName": "augur_data", + "tableName": "unknown_cache", + "x": 1501, + "y": 2710, + "width": 230, + "height": 240, + "isBold": false, + "titleColor": { + "r": 55, + "g": 131, + "b": 192, + "a": 1 + } + }, + { + "type": "table", + "schemaName": "augur_data", + "tableName": "utility_log", + "x": 1248, + "y": 2979, + "width": 175, + "height": 135, + "isBold": false, + "titleColor": { + "r": 55, + "g": 131, + "b": 192, + "a": 1 + } + }, + { + "type": "table", + "schemaName": "augur_data", + "tableName": "working_commits", + "x": 1511, + "y": 2991, + "width": 208, + "height": 93, + "isBold": false, + "titleColor": { + "r": 55, + "g": 131, + "b": 192, + "a": 1 + } + }, + { + "type": "table", + "schemaName": "augur_operations", + "tableName": "all", + "x": 5979, + "y": 897, + "width": 201, + "height": 261, + "isBold": false, + "titleColor": { + "r": 200, + "g": 255, + "b": 160, + "a": 1 + } + }, + { + "type": "table", + "schemaName": "augur_operations", + "tableName": "augur_settings", + "x": 5994, + "y": 735, + "width": 230, + "height": 135, + "isBold": false, + "titleColor": { + "r": 200, + "g": 255, + "b": 160, + "a": 1 + } + }, + { + "type": "table", + "schemaName": "augur_operations", + "tableName": "repos_fetch_log", + "x": 6230, + "y": 978, + "width": 237, + "height": 114, + "isBold": false, + "titleColor": { + "r": 200, + "g": 255, + "b": 160, + "a": 1 + } + }, + { + "type": "table", + "schemaName": "augur_operations", + "tableName": "worker_history", + "x": 6255, + "y": 1241, + "width": 229, + "height": 219, + "isBold": false, + "titleColor": { + "r": 200, + "g": 255, + "b": 160, + "a": 1 + } + }, + { + "type": "table", + "schemaName": "augur_operations", + "tableName": "worker_job", + "x": 5992, + "y": 1189, + "width": 206, + "height": 240, + "isBold": false, + "titleColor": { + "r": 200, + "g": 255, + "b": 160, + "a": 1 + } + }, + { + "type": "table", + "schemaName": "augur_operations", + "tableName": "worker_oauth", + "x": 6271, + "y": 736, + "width": 231, + "height": 219, + "isBold": false, + "titleColor": { + "r": 200, + "g": 255, + "b": 160, + "a": 1 + } + }, + { + "type": "table", + "schemaName": "augur_operations", + "tableName": "worker_settings_facade", + "x": 7780, + "y": 30, + "width": 285, + "height": 135, + "isBold": false, + "titleColor": { + "r": 200, + "g": 255, + "b": 160, + "a": 1 + } + }, + { + "type": "table", + "schemaName": "augur_operations", + "tableName": "working_commits", + "x": 6241, + "y": 1116, + "width": 246, + "height": 93, + "isBold": false, + "titleColor": { + "r": 200, + "g": 255, + "b": 160, + "a": 1 + } + }, + { + "type": "table", + "schemaName": "spdx", + "tableName": "annotation_types", + "x": 1940, + "y": 7970, + "width": 171, + "height": 93, + "isBold": false, + "titleColor": { + "r": 255, + "g": 214, + "b": 147, + "a": 1 + } + }, + { + "type": "table", + "schemaName": "spdx", + "tableName": "annotations", + "x": 1940, + "y": 7720, + "width": 186, + "height": 198, + "isBold": false, + "titleColor": { + "r": 255, + "g": 214, + "b": 147, + "a": 1 + } + }, + { + "type": "table", + "schemaName": "spdx", + "tableName": "augur_repo_map", + "x": 578, + "y": 6320, + "width": 170, + "height": 156, + "isBold": false, + "titleColor": { + "r": 255, + "g": 214, + "b": 147, + "a": 1 + } + }, + { + "type": "table", + "schemaName": "spdx", + "tableName": "creator_types", + "x": 540, + "y": 7570, + "width": 152, + "height": 93, + "isBold": false, + "titleColor": { + "r": 255, + "g": 214, + "b": 147, + "a": 1 + } + }, + { + "type": "table", + "schemaName": "spdx", + "tableName": "creators", + "x": 740, + "y": 7540, + "width": 152, + "height": 135, + "isBold": false, + "titleColor": { + "r": 255, + "g": 214, + "b": 147, + "a": 1 + } + }, + { + "type": "table", + "schemaName": "spdx", + "tableName": "document_namespaces", + "x": 2250, + "y": 7270, + "width": 208, + "height": 93, + "isBold": false, + "titleColor": { + "r": 255, + "g": 214, + "b": 147, + "a": 1 + } + }, + { + "type": "table", + "schemaName": "spdx", + "tableName": "documents", + "x": 1920, + "y": 7410, + "width": 222, + "height": 261, + "isBold": false, + "titleColor": { + "r": 255, + "g": 214, + "b": 147, + "a": 1 + } + }, + { + "type": "table", + "schemaName": "spdx", + "tableName": "documents_creators", + "x": 950, + "y": 7550, + "width": 186, + "height": 114, + "isBold": false, + "titleColor": { + "r": 255, + "g": 214, + "b": 147, + "a": 1 + } + }, + { + "type": "table", + "schemaName": "spdx", + "tableName": "external_refs", + "x": 2250, + "y": 7410, + "width": 207, + "height": 156, + "isBold": false, + "titleColor": { + "r": 255, + "g": 214, + "b": 147, + "a": 1 + } + }, + { + "type": "table", + "schemaName": "spdx", + "tableName": "file_contributors", + "x": 2010, + "y": 6430, + "width": 164, + "height": 114, + "isBold": false, + "titleColor": { + "r": 255, + "g": 214, + "b": 147, + "a": 1 + } + }, + { + "type": "table", + "schemaName": "spdx", + "tableName": "file_types", + "x": 1740, + "y": 7970, + "width": 150, + "height": 93, + "isBold": false, + "titleColor": { + "r": 255, + "g": 214, + "b": 147, + "a": 1 + } + }, + { + "type": "table", + "schemaName": "spdx", + "tableName": "files", + "x": 2020, + "y": 6590, + "width": 152, + "height": 198, + "isBold": false, + "titleColor": { + "r": 255, + "g": 214, + "b": 147, + "a": 1 + } + }, + { + "type": "table", + "schemaName": "spdx", + "tableName": "files_licenses", + "x": 2020, + "y": 6840, + "width": 150, + "height": 135, + "isBold": false, + "titleColor": { + "r": 255, + "g": 214, + "b": 147, + "a": 1 + } + }, + { + "type": "table", + "schemaName": "spdx", + "tableName": "files_scans", + "x": 1820, + "y": 6680, + "width": 150, + "height": 114, + "isBold": false, + "titleColor": { + "r": 255, + "g": 214, + "b": 147, + "a": 1 + } + }, + { + "type": "table", + "schemaName": "spdx", + "tableName": "identifiers", + "x": 2720, + "y": 7490, + "width": 207, + "height": 177, + "isBold": false, + "titleColor": { + "r": 255, + "g": 214, + "b": 147, + "a": 1 + } + }, + { + "type": "table", + "schemaName": "spdx", + "tableName": "licenses", + "x": 2000, + "y": 7090, + "width": 182, + "height": 177, + "isBold": false, + "titleColor": { + "r": 255, + "g": 214, + "b": 147, + "a": 1 + } + }, + { + "type": "table", + "schemaName": "spdx", + "tableName": "packages", + "x": 1080, + "y": 6710, + "width": 210, + "height": 471, + "isBold": false, + "titleColor": { + "r": 255, + "g": 214, + "b": 147, + "a": 1 + } + }, + { + "type": "table", + "schemaName": "spdx", + "tableName": "packages_files", + "x": 2280, + "y": 6700, + "width": 184, + "height": 177, + "isBold": false, + "titleColor": { + "r": 255, + "g": 214, + "b": 147, + "a": 1 + } + }, + { + "type": "table", + "schemaName": "spdx", + "tableName": "packages_scans", + "x": 1410, + "y": 6690, + "width": 163, + "height": 114, + "isBold": false, + "titleColor": { + "r": 255, + "g": 214, + "b": 147, + "a": 1 + } + }, + { + "type": "table", + "schemaName": "spdx", + "tableName": "projects", + "x": 1540, + "y": 7950, + "width": 150, + "height": 135, + "isBold": false, + "titleColor": { + "r": 255, + "g": 214, + "b": 147, + "a": 1 + } + }, + { + "type": "table", + "schemaName": "spdx", + "tableName": "relationship_types", + "x": 2640, + "y": 7130, + "width": 176, + "height": 93, + "isBold": false, + "titleColor": { + "r": 255, + "g": 214, + "b": 147, + "a": 1 + } + }, + { + "type": "table", + "schemaName": "spdx", + "tableName": "relationships", + "x": 2640, + "y": 7280, + "width": 187, + "height": 156, + "isBold": false, + "titleColor": { + "r": 255, + "g": 214, + "b": 147, + "a": 1 + } + }, + { + "type": "table", + "schemaName": "spdx", + "tableName": "sbom_scans", + "x": 1340, + "y": 7970, + "width": 150, + "height": 93, + "isBold": false, + "titleColor": { + "r": 255, + "g": 214, + "b": 147, + "a": 1 + } + }, + { + "type": "table", + "schemaName": "spdx", + "tableName": "scanners", + "x": 1620, + "y": 6700, + "width": 150, + "height": 93, + "isBold": false, + "titleColor": { + "r": 255, + "g": 214, + "b": 147, + "a": 1 + } + } + ], + "layers": [ + { + "name": "SPDX", + "x": 480, + "y": 6250, + "width": 2493, + "height": 1894, + "layerColor": { + "r": 100, + "g": 234, + "b": 136, + "a": 1 + }, + "fontName": "Arial Unicode MS", + "fontSize": 14, + "fontColor": { + "r": 51, + "g": 51, + "b": 51, + "a": 1 + } + }, + { + "name": "Facade (Commit) Data Mart Tables", + "x": 1208, + "y": 1783, + "width": 992, + "height": 818, + "layerColor": { + "r": 100, + "g": 234, + "b": 136, + "a": 1 + }, + "fontName": "Arial Unicode MS", + "fontSize": 14, + "fontColor": { + "r": 51, + "g": 51, + "b": 51, + "a": 1 + } + }, + { + "name": "Facade Worker Operational Tables", + "x": 1213, + "y": 2632, + "width": 972, + "height": 556, + "layerColor": { + "r": 100, + "g": 234, + "b": 136, + "a": 1 + }, + "fontName": "Arial Unicode MS", + "fontSize": 14, + "fontColor": { + "r": 51, + "g": 51, + "b": 51, + "a": 1 + } + } + ], + "relations": [ + { + "name": "fk_commit_comment_ref_commits_1", + "sourceTableName": "commit_comment_ref", + "sourceSchemaName": "augur_data", + "lineWidth": 1, + "visible": true, + "vertices": [ + { + "x": 3550, + "y": 4660 + }, + { + "x": 3565, + "y": 4660 + } + ], + "label": { + "x": 3546, + "y": 4662, + "width": 233, + "height": 31, + "fontName": "Arial Unicode MS", + "fontSize": 14, + "fontColor": { + "r": 51, + "g": 51, + "b": 51, + "a": 1 + }, + "isFontBold": false, + "isFontItalic": false, + "isVisible": false + } + }, + { + "name": "fk_commit_parents_commits_1", + "sourceTableName": "commit_parents", + "sourceSchemaName": "augur_data", + "lineWidth": 1, + "visible": true, + "vertices": [ + { + "x": 3735, + "y": 5005 + }, + { + "x": 3735, + "y": 4983 + } + ], + "label": { + "x": 3743, + "y": 5015, + "width": 199, + "height": 31, + "fontName": "Arial Unicode MS", + "fontSize": 14, + "fontColor": { + "r": 51, + "g": 51, + "b": 51, + "a": 1 + }, + "isFontBold": false, + "isFontItalic": false, + "isVisible": false + } + }, + { + "name": "fk_commit_parents_commits_2", + "sourceTableName": "commit_parents", + "sourceSchemaName": "augur_data", + "lineWidth": 1, + "visible": true, + "vertices": [ + { + "x": 3705, + "y": 5005 + }, + { + "x": 3705, + "y": 4983 + } + ], + "label": { + "x": 3713, + "y": 5015, + "width": 199, + "height": 31, + "fontName": "Arial Unicode MS", + "fontSize": 14, + "fontColor": { + "r": 51, + "g": 51, + "b": 51, + "a": 1 + }, + "isFontBold": false, + "isFontItalic": false, + "isVisible": false + } + }, + { + "name": "fk_commits_contributors_1", + "sourceTableName": "commits", + "sourceSchemaName": "augur_data", + "lineWidth": 1, + "visible": true, + "vertices": [ + { + "x": 3735, + "y": 4335 + }, + { + "x": 3735, + "y": 3575 + }, + { + "x": 4285, + "y": 3575 + } + ], + "label": { + "x": 3743, + "y": 4350, + "width": 173, + "height": 31, + "fontName": "Arial Unicode MS", + "fontSize": 14, + "fontColor": { + "r": 51, + "g": 51, + "b": 51, + "a": 1 + }, + "isFontBold": false, + "isFontItalic": false, + "isVisible": false + } + }, + { + "name": "fk_commits_contributors_2", + "sourceTableName": "commits", + "sourceSchemaName": "augur_data", + "lineWidth": 1, + "visible": true, + "vertices": [ + { + "x": 3705, + "y": 4335 + }, + { + "x": 3705, + "y": 3545 + }, + { + "x": 4285, + "y": 3545 + } + ], + "label": { + "x": 3713, + "y": 4350, + "width": 173, + "height": 31, + "fontName": "Arial Unicode MS", + "fontSize": 14, + "fontColor": { + "r": 51, + "g": 51, + "b": 51, + "a": 1 + }, + "isFontBold": false, + "isFontItalic": false, + "isVisible": false + } + }, + { + "name": "fk_contributor_repo_contributors_1", + "sourceTableName": "contributor_repo", + "sourceSchemaName": "augur_data", + "lineWidth": 1, + "visible": true, + "vertices": [ + { + "x": 4340, + "y": 3765 + }, + { + "x": 4340, + "y": 3691 + } + ], + "label": { + "x": 4348, + "y": 3775, + "width": 222, + "height": 31, + "fontName": "Arial Unicode MS", + "fontSize": 14, + "fontColor": { + "r": 51, + "g": 51, + "b": 51, + "a": 1 + }, + "isFontBold": false, + "isFontItalic": false, + "isVisible": false + } + }, + { + "name": "fk_alias_id", + "sourceTableName": "contributors_aliases", + "sourceSchemaName": "augur_data", + "lineWidth": 1, + "visible": true, + "vertices": [ + { + "x": 4585, + "y": 3645 + }, + { + "x": 4566, + "y": 3645 + } + ], + "label": { + "x": 4601, + "y": 3647, + "width": 73, + "height": 31, + "fontName": "Arial Unicode MS", + "fontSize": 14, + "fontColor": { + "r": 51, + "g": 51, + "b": 51, + "a": 1 + }, + "isFontBold": false, + "isFontItalic": false, + "isVisible": false + } + }, + { + "name": "fk_contributors_aliases_contributors_1", + "sourceTableName": "contributors_aliases", + "sourceSchemaName": "augur_data", + "lineWidth": 1, + "visible": true, + "vertices": [ + { + "x": 4585, + "y": 3615 + }, + { + "x": 4566, + "y": 3615 + } + ], + "label": { + "x": 4601, + "y": 3617, + "width": 245, + "height": 31, + "fontName": "Arial Unicode MS", + "fontSize": 14, + "fontColor": { + "r": 51, + "g": 51, + "b": 51, + "a": 1 + }, + "isFontBold": false, + "isFontItalic": false, + "isVisible": false + } + }, + { + "name": "fk_contributors_history_contributors_1", + "sourceTableName": "contributors_history", + "sourceSchemaName": "augur_data", + "lineWidth": 1, + "visible": true, + "vertices": [ + { + "x": 4865, + "y": 3490 + }, + { + "x": 4566, + "y": 3490 + } + ], + "label": { + "x": 4881, + "y": 3492, + "width": 243, + "height": 31, + "fontName": "Arial Unicode MS", + "fontSize": 14, + "fontColor": { + "r": 51, + "g": 51, + "b": 51, + "a": 1 + }, + "isFontBold": false, + "isFontItalic": false, + "isVisible": false + } + }, + { + "name": "fk_issue_assignees_contributors_1", + "sourceTableName": "issue_assignees", + "sourceSchemaName": "augur_data", + "lineWidth": 1, + "visible": true, + "vertices": [ + { + "x": 4715, + "y": 2900 + }, + { + "x": 4566, + "y": 2900 + } + ], + "label": { + "x": 4731, + "y": 2902, + "width": 224, + "height": 31, + "fontName": "Arial Unicode MS", + "fontSize": 14, + "fontColor": { + "r": 51, + "g": 51, + "b": 51, + "a": 1 + }, + "isFontBold": false, + "isFontItalic": false, + "isVisible": false + } + }, + { + "name": "fk_issue_events_contributors_1", + "sourceTableName": "issue_events", + "sourceSchemaName": "augur_data", + "lineWidth": 1, + "visible": true, + "vertices": [ + { + "x": 4645, + "y": 3230 + }, + { + "x": 4566, + "y": 3230 + } + ], + "label": { + "x": 4661, + "y": 3232, + "width": 202, + "height": 31, + "fontName": "Arial Unicode MS", + "fontSize": 14, + "fontColor": { + "r": 51, + "g": 51, + "b": 51, + "a": 1 + }, + "isFontBold": false, + "isFontItalic": false, + "isVisible": false + } + }, + { + "name": "fk_issue_assignees_issues_1", + "sourceTableName": "issue_assignees", + "sourceSchemaName": "augur_data", + "lineWidth": 1, + "visible": true, + "vertices": [ + { + "x": 4975, + "y": 2900 + }, + { + "x": 5055, + "y": 2900 + } + ], + "label": { + "x": 4971, + "y": 2902, + "width": 191, + "height": 31, + "fontName": "Arial Unicode MS", + "fontSize": 14, + "fontColor": { + "r": 51, + "g": 51, + "b": 51, + "a": 1 + }, + "isFontBold": false, + "isFontItalic": false, + "isVisible": false + } + }, + { + "name": "fk_issue_events_issues_1", + "sourceTableName": "issue_events", + "sourceSchemaName": "augur_data", + "lineWidth": 1, + "visible": true, + "vertices": [ + { + "x": 4905, + "y": 3230 + }, + { + "x": 5055, + "y": 3230 + } + ], + "label": { + "x": 4901, + "y": 3232, + "width": 169, + "height": 31, + "fontName": "Arial Unicode MS", + "fontSize": 14, + "fontColor": { + "r": 51, + "g": 51, + "b": 51, + "a": 1 + }, + "isFontBold": false, + "isFontItalic": false, + "isVisible": false + } + }, + { + "name": "fk_issue_labels_issues_1", + "sourceTableName": "issue_labels", + "sourceSchemaName": "augur_data", + "lineWidth": 1, + "visible": true, + "vertices": [ + { + "x": 5335, + "y": 2960 + }, + { + "x": 5315, + "y": 2960 + } + ], + "label": { + "x": 5351, + "y": 2962, + "width": 164, + "height": 31, + "fontName": "Arial Unicode MS", + "fontSize": 14, + "fontColor": { + "r": 51, + "g": 51, + "b": 51, + "a": 1 + }, + "isFontBold": false, + "isFontItalic": false, + "isVisible": false + } + }, + { + "name": "fk_issue_message_ref_issues_1", + "sourceTableName": "issue_message_ref", + "sourceSchemaName": "augur_data", + "lineWidth": 1, + "visible": true, + "vertices": [ + { + "x": 5190, + "y": 4805 + }, + { + "x": 5190, + "y": 3294 + } + ], + "label": { + "x": 5198, + "y": 4815, + "width": 208, + "height": 31, + "fontName": "Arial Unicode MS", + "fontSize": 14, + "fontColor": { + "r": 51, + "g": 51, + "b": 51, + "a": 1 + }, + "isFontBold": false, + "isFontItalic": false, + "isVisible": false + } + }, + { + "name": "fk_issues_contributors_1", + "sourceTableName": "issues", + "sourceSchemaName": "augur_data", + "lineWidth": 1, + "visible": true, + "vertices": [ + { + "x": 5055, + "y": 2735 + }, + { + "x": 4566, + "y": 2735 + } + ], + "label": { + "x": 5071, + "y": 2737, + "width": 161, + "height": 31, + "fontName": "Arial Unicode MS", + "fontSize": 14, + "fontColor": { + "r": 51, + "g": 51, + "b": 51, + "a": 1 + }, + "isFontBold": false, + "isFontItalic": false, + "isVisible": false + } + }, + { + "name": "fk_issues_contributors_2", + "sourceTableName": "issues", + "sourceSchemaName": "augur_data", + "lineWidth": 1, + "visible": true, + "vertices": [ + { + "x": 5055, + "y": 2705 + }, + { + "x": 4566, + "y": 2705 + } + ], + "label": { + "x": 5071, + "y": 2707, + "width": 161, + "height": 31, + "fontName": "Arial Unicode MS", + "fontSize": 14, + "fontColor": { + "r": 51, + "g": 51, + "b": 51, + "a": 1 + }, + "isFontBold": false, + "isFontItalic": false, + "isVisible": false + } + }, + { + "name": "fk_library_dependencies_libraries_1", + "sourceTableName": "library_dependencies", + "sourceSchemaName": "augur_data", + "lineWidth": 1, + "visible": true, + "vertices": [ + { + "x": 5370, + "y": 1135 + }, + { + "x": 5370, + "y": 1107 + } + ], + "label": { + "x": 5378, + "y": 1145, + "width": 229, + "height": 31, + "fontName": "Arial Unicode MS", + "fontSize": 14, + "fontColor": { + "r": 51, + "g": 51, + "b": 51, + "a": 1 + }, + "isFontBold": false, + "isFontItalic": false, + "isVisible": false + } + }, + { + "name": "fk_library_version_libraries_1", + "sourceTableName": "library_version", + "sourceSchemaName": "augur_data", + "lineWidth": 1, + "visible": true, + "vertices": [ + { + "x": 5535, + "y": 850 + }, + { + "x": 5510, + "y": 850 + } + ], + "label": { + "x": 5551, + "y": 852, + "width": 187, + "height": 31, + "fontName": "Arial Unicode MS", + "fontSize": 14, + "fontColor": { + "r": 51, + "g": 51, + "b": 51, + "a": 1 + }, + "isFontBold": false, + "isFontItalic": false, + "isVisible": false + } + }, + { + "name": "fk_lstm_anomaly_results_lstm_anomaly_models_1", + "sourceTableName": "lstm_anomaly_results", + "sourceSchemaName": "augur_data", + "lineWidth": 1, + "visible": true, + "vertices": [ + { + "x": 6170, + "y": 410 + }, + { + "x": 6185, + "y": 410 + } + ], + "label": { + "x": 6166, + "y": 412, + "width": 320, + "height": 31, + "fontName": "Arial Unicode MS", + "fontSize": 14, + "fontColor": { + "r": 51, + "g": 51, + "b": 51, + "a": 1 + }, + "isFontBold": false, + "isFontItalic": false, + "isVisible": false + } + }, + { + "name": "fk_commit_comment_ref_message_1", + "sourceTableName": "commit_comment_ref", + "sourceSchemaName": "augur_data", + "lineWidth": 1, + "visible": true, + "vertices": [ + { + "x": 3320, + "y": 4850 + }, + { + "x": 3320, + "y": 5190 + }, + { + "x": 3270, + "y": 5190 + }, + { + "x": 3270, + "y": 5355 + } + ], + "label": { + "x": 3328, + "y": 4840, + "width": 238, + "height": 31, + "fontName": "Arial Unicode MS", + "fontSize": 14, + "fontColor": { + "r": 51, + "g": 51, + "b": 51, + "a": 1 + }, + "isFontBold": false, + "isFontItalic": false, + "isVisible": false + } + }, + { + "name": "fk_discourse_insights_message_1", + "sourceTableName": "discourse_insights", + "sourceSchemaName": "augur_data", + "lineWidth": 1, + "visible": true, + "vertices": [ + { + "x": 3104, + "y": 5670 + }, + { + "x": 3125, + "y": 5670 + } + ], + "label": { + "x": 3100, + "y": 5672, + "width": 219, + "height": 31, + "fontName": "Arial Unicode MS", + "fontSize": 14, + "fontColor": { + "r": 51, + "g": 51, + "b": 51, + "a": 1 + }, + "isFontBold": false, + "isFontItalic": false, + "isVisible": false + } + }, + { + "name": "fk_issue_message_ref_message_1", + "sourceTableName": "issue_message_ref", + "sourceSchemaName": "augur_data", + "lineWidth": 1, + "visible": true, + "vertices": [ + { + "x": 5040, + "y": 5096 + }, + { + "x": 5040, + "y": 5310 + }, + { + "x": 3340, + "y": 5310 + }, + { + "x": 3340, + "y": 5355 + } + ], + "label": { + "x": 5048, + "y": 5086, + "width": 225, + "height": 31, + "fontName": "Arial Unicode MS", + "fontSize": 14, + "fontColor": { + "r": 51, + "g": 51, + "b": 51, + "a": 1 + }, + "isFontBold": false, + "isFontItalic": false, + "isVisible": false + } + }, + { + "name": "fk_message_contributors_1", + "sourceTableName": "message", + "sourceSchemaName": "augur_data", + "lineWidth": 1, + "visible": true, + "vertices": [ + { + "x": 3300, + "y": 5355 + }, + { + "x": 3300, + "y": 5250 + }, + { + "x": 3910, + "y": 5250 + }, + { + "x": 3910, + "y": 3630 + }, + { + "x": 4285, + "y": 3630 + } + ], + "label": { + "x": 3308, + "y": 5365, + "width": 178, + "height": 31, + "fontName": "Arial Unicode MS", + "fontSize": 14, + "fontColor": { + "r": 51, + "g": 51, + "b": 51, + "a": 1 + }, + "isFontBold": false, + "isFontItalic": false, + "isVisible": false + } + }, + { + "name": "fk_message_analysis_message_1", + "sourceTableName": "message_analysis", + "sourceSchemaName": "augur_data", + "lineWidth": 1, + "visible": true, + "vertices": [ + { + "x": 3250, + "y": 5745 + }, + { + "x": 3250, + "y": 5730 + } + ], + "label": { + "x": 3258, + "y": 5755, + "width": 219, + "height": 31, + "fontName": "Arial Unicode MS", + "fontSize": 14, + "fontColor": { + "r": 51, + "g": 51, + "b": 51, + "a": 1 + }, + "isFontBold": false, + "isFontItalic": false, + "isVisible": false + } + }, + { + "name": "fk_message_sentiment_message_1", + "sourceTableName": "message_sentiment", + "sourceSchemaName": "augur_data", + "lineWidth": 1, + "visible": true, + "vertices": [ + { + "x": 5245, + "y": 5540 + }, + { + "x": 3385, + "y": 5540 + } + ], + "label": { + "x": 5261, + "y": 5542, + "width": 229, + "height": 31, + "fontName": "Arial Unicode MS", + "fontSize": 14, + "fontColor": { + "r": 51, + "g": 51, + "b": 51, + "a": 1 + }, + "isFontBold": false, + "isFontItalic": false, + "isVisible": false + } + }, + { + "name": "fk_message_platform_1", + "sourceTableName": "message", + "sourceSchemaName": "augur_data", + "lineWidth": 1, + "visible": true, + "vertices": [ + { + "x": 3385, + "y": 5410 + }, + { + "x": 5210, + "y": 5410 + }, + { + "x": 5210, + "y": 5364 + } + ], + "label": { + "x": 3381, + "y": 5412, + "width": 156, + "height": 31, + "fontName": "Arial Unicode MS", + "fontSize": 14, + "fontColor": { + "r": 51, + "g": 51, + "b": 51, + "a": 1 + }, + "isFontBold": false, + "isFontItalic": false, + "isVisible": false + } + }, + { + "name": "fk_pull_request_assignees_contributors_1", + "sourceTableName": "pull_request_assignees", + "sourceSchemaName": "augur_data", + "lineWidth": 1, + "visible": true, + "vertices": [ + { + "x": 3520, + "y": 3134 + }, + { + "x": 3520, + "y": 3420 + }, + { + "x": 4285, + "y": 3420 + } + ], + "label": { + "x": 3528, + "y": 3124, + "width": 267, + "height": 31, + "fontName": "Arial Unicode MS", + "fontSize": 14, + "fontColor": { + "r": 51, + "g": 51, + "b": 51, + "a": 1 + }, + "isFontBold": false, + "isFontItalic": false, + "isVisible": false + } + }, + { + "name": "fk_pr_commit_cntrb_id", + "sourceTableName": "pull_request_commits", + "sourceSchemaName": "augur_data", + "lineWidth": 1, + "visible": true, + "vertices": [ + { + "x": 3660, + "y": 2869 + }, + { + "x": 3660, + "y": 3350 + }, + { + "x": 4285, + "y": 3350 + } + ], + "label": { + "x": 3668, + "y": 2859, + "width": 147, + "height": 31, + "fontName": "Arial Unicode MS", + "fontSize": 14, + "fontColor": { + "r": 51, + "g": 51, + "b": 51, + "a": 1 + }, + "isFontBold": false, + "isFontItalic": false, + "isVisible": false + } + }, + { + "name": "fk_pull_request_events_contributors_1", + "sourceTableName": "pull_request_events", + "sourceSchemaName": "augur_data", + "lineWidth": 1, + "visible": true, + "vertices": [ + { + "x": 3830, + "y": 3239 + }, + { + "x": 3830, + "y": 3280 + }, + { + "x": 4285, + "y": 3280 + } + ], + "label": { + "x": 3838, + "y": 3229, + "width": 245, + "height": 31, + "fontName": "Arial Unicode MS", + "fontSize": 14, + "fontColor": { + "r": 51, + "g": 51, + "b": 51, + "a": 1 + }, + "isFontBold": false, + "isFontItalic": false, + "isVisible": false + } + }, + { + "name": "fk_pull_request_message_ref_message_1", + "sourceTableName": "pull_request_message_ref", + "sourceSchemaName": "augur_data", + "lineWidth": 1, + "visible": true, + "vertices": [ + { + "x": 3160, + "y": 2286 + }, + { + "x": 3160, + "y": 5355 + } + ], + "label": { + "x": 3168, + "y": 2276, + "width": 268, + "height": 31, + "fontName": "Arial Unicode MS", + "fontSize": 14, + "fontColor": { + "r": 51, + "g": 51, + "b": 51, + "a": 1 + }, + "isFontBold": false, + "isFontItalic": false, + "isVisible": false + } + }, + { + "name": "fk_pull_request_meta_contributors_2", + "sourceTableName": "pull_request_meta", + "sourceSchemaName": "augur_data", + "lineWidth": 1, + "visible": true, + "vertices": [ + { + "x": 4520, + "y": 2287 + }, + { + "x": 4520, + "y": 2665 + } + ], + "label": { + "x": 4528, + "y": 2277, + "width": 235, + "height": 31, + "fontName": "Arial Unicode MS", + "fontSize": 14, + "fontColor": { + "r": 51, + "g": 51, + "b": 51, + "a": 1 + }, + "isFontBold": false, + "isFontItalic": false, + "isVisible": false + } + }, + { + "name": "fk_pull_request_repo_contributors_1", + "sourceTableName": "pull_request_repo", + "sourceSchemaName": "augur_data", + "lineWidth": 1, + "visible": true, + "vertices": [ + { + "x": 4350, + "y": 2309 + }, + { + "x": 4350, + "y": 2665 + } + ], + "label": { + "x": 4358, + "y": 2299, + "width": 232, + "height": 31, + "fontName": "Arial Unicode MS", + "fontSize": 14, + "fontColor": { + "r": 51, + "g": 51, + "b": 51, + "a": 1 + }, + "isFontBold": false, + "isFontItalic": false, + "isVisible": false + } + }, + { + "name": "fk_pull_request_repo_pull_request_meta_1", + "sourceTableName": "pull_request_repo", + "sourceSchemaName": "augur_data", + "lineWidth": 1, + "visible": true, + "vertices": [ + { + "x": 4445, + "y": 2130 + }, + { + "x": 4465, + "y": 2130 + } + ], + "label": { + "x": 4441, + "y": 2132, + "width": 272, + "height": 31, + "fontName": "Arial Unicode MS", + "fontSize": 14, + "fontColor": { + "r": 51, + "g": 51, + "b": 51, + "a": 1 + }, + "isFontBold": false, + "isFontItalic": false, + "isVisible": false + } + }, + { + "name": "fk_pull_request_review_message_ref_message_1", + "sourceTableName": "pull_request_review_message_ref", + "sourceSchemaName": "augur_data", + "lineWidth": 1, + "visible": true, + "vertices": [ + { + "x": 3260, + "y": 4384 + }, + { + "x": 3260, + "y": 4430 + }, + { + "x": 3220, + "y": 4430 + }, + { + "x": 3220, + "y": 5355 + } + ], + "label": { + "x": 3268, + "y": 4374, + "width": 315, + "height": 31, + "fontName": "Arial Unicode MS", + "fontSize": 14, + "fontColor": { + "r": 51, + "g": 51, + "b": 51, + "a": 1 + }, + "isFontBold": false, + "isFontItalic": false, + "isVisible": false + } + }, + { + "name": "fk_pull_request_reviewers_contributors_1", + "sourceTableName": "pull_request_reviewers", + "sourceSchemaName": "augur_data", + "lineWidth": 1, + "visible": true, + "vertices": [ + { + "x": 4120, + "y": 3134 + }, + { + "x": 4120, + "y": 3170 + }, + { + "x": 4285, + "y": 3170 + } + ], + "label": { + "x": 4128, + "y": 3124, + "width": 264, + "height": 31, + "fontName": "Arial Unicode MS", + "fontSize": 14, + "fontColor": { + "r": 51, + "g": 51, + "b": 51, + "a": 1 + }, + "isFontBold": false, + "isFontItalic": false, + "isVisible": false + } + }, + { + "name": "fk_pull_request_review_message_ref_pull_request_reviews_1", + "sourceTableName": "pull_request_review_message_ref", + "sourceSchemaName": "augur_data", + "lineWidth": 1, + "visible": true, + "vertices": [ + { + "x": 3370, + "y": 3715 + }, + { + "x": 3370, + "y": 3702 + } + ], + "label": { + "x": 3378, + "y": 3730, + "width": 388, + "height": 31, + "fontName": "Arial Unicode MS", + "fontSize": 14, + "fontColor": { + "r": 51, + "g": 51, + "b": 51, + "a": 1 + }, + "isFontBold": false, + "isFontItalic": false, + "isVisible": false + } + }, + { + "name": "fk_pull_request_reviews_contributors_1", + "sourceTableName": "pull_request_reviews", + "sourceSchemaName": "augur_data", + "lineWidth": 1, + "visible": true, + "vertices": [ + { + "x": 3484, + "y": 3490 + }, + { + "x": 4285, + "y": 3490 + } + ], + "label": { + "x": 3480, + "y": 3492, + "width": 251, + "height": 31, + "fontName": "Arial Unicode MS", + "fontSize": 14, + "fontColor": { + "r": 51, + "g": 51, + "b": 51, + "a": 1 + }, + "isFontBold": false, + "isFontItalic": false, + "isVisible": false + } + }, + { + "name": "fk_pull_request_analysis_pull_requests_1", + "sourceTableName": "pull_request_analysis", + "sourceSchemaName": "augur_data", + "lineWidth": 1, + "visible": true, + "vertices": [ + { + "x": 4880, + "y": 1885 + }, + { + "x": 4880, + "y": 1840 + }, + { + "x": 3520, + "y": 1840 + } + ], + "label": { + "x": 4888, + "y": 1895, + "width": 264, + "height": 31, + "fontName": "Arial Unicode MS", + "fontSize": 14, + "fontColor": { + "r": 51, + "g": 51, + "b": 51, + "a": 1 + }, + "isFontBold": false, + "isFontItalic": false, + "isVisible": false + } + }, + { + "name": "fk_pull_request_assignees_pull_requests_1", + "sourceTableName": "pull_request_assignees", + "sourceSchemaName": "augur_data", + "lineWidth": 1, + "visible": true, + "vertices": [ + { + "x": 3560, + "y": 2885 + }, + { + "x": 3560, + "y": 2540 + }, + { + "x": 3520, + "y": 2540 + } + ], + "label": { + "x": 3568, + "y": 2895, + "width": 276, + "height": 31, + "fontName": "Arial Unicode MS", + "fontSize": 14, + "fontColor": { + "r": 51, + "g": 51, + "b": 51, + "a": 1 + }, + "isFontBold": false, + "isFontItalic": false, + "isVisible": false + } + }, + { + "name": "fk_pull_request_commits_pull_requests_1", + "sourceTableName": "pull_request_commits", + "sourceSchemaName": "augur_data", + "lineWidth": 1, + "visible": true, + "vertices": [ + { + "x": 3730, + "y": 2515 + }, + { + "x": 3730, + "y": 2470 + }, + { + "x": 3520, + "y": 2470 + } + ], + "label": { + "x": 3738, + "y": 2525, + "width": 265, + "height": 31, + "fontName": "Arial Unicode MS", + "fontSize": 14, + "fontColor": { + "r": 51, + "g": 51, + "b": 51, + "a": 1 + }, + "isFontBold": false, + "isFontItalic": false, + "isVisible": false + } + }, + { + "name": "fk_pull_request_events_pull_requests_1", + "sourceTableName": "pull_request_events", + "sourceSchemaName": "augur_data", + "lineWidth": 1, + "visible": true, + "vertices": [ + { + "x": 3900, + "y": 2885 + }, + { + "x": 3900, + "y": 2400 + }, + { + "x": 3520, + "y": 2400 + } + ], + "label": { + "x": 3908, + "y": 2895, + "width": 254, + "height": 31, + "fontName": "Arial Unicode MS", + "fontSize": 14, + "fontColor": { + "r": 51, + "g": 51, + "b": 51, + "a": 1 + }, + "isFontBold": false, + "isFontItalic": false, + "isVisible": false + } + }, + { + "name": "fk_pull_request_commits_pull_requests_1", + "sourceTableName": "pull_request_files", + "sourceSchemaName": "augur_data", + "lineWidth": 1, + "visible": true, + "vertices": [ + { + "x": 3535, + "y": 1740 + }, + { + "x": 3520, + "y": 1740 + } + ], + "label": { + "x": 3551, + "y": 1742, + "width": 265, + "height": 31, + "fontName": "Arial Unicode MS", + "fontSize": 14, + "fontColor": { + "r": 51, + "g": 51, + "b": 51, + "a": 1 + }, + "isFontBold": false, + "isFontItalic": false, + "isVisible": false + } + }, + { + "name": "fk_pull_request_labels_pull_requests_1", + "sourceTableName": "pull_request_labels", + "sourceSchemaName": "augur_data", + "lineWidth": 1, + "visible": true, + "vertices": [ + { + "x": 3490, + "y": 1508 + }, + { + "x": 3490, + "y": 1550 + }, + { + "x": 3460, + "y": 1550 + }, + { + "x": 3460, + "y": 1685 + } + ], + "label": { + "x": 3498, + "y": 1498, + "width": 250, + "height": 31, + "fontName": "Arial Unicode MS", + "fontSize": 14, + "fontColor": { + "r": 51, + "g": 51, + "b": 51, + "a": 1 + }, + "isFontBold": false, + "isFontItalic": false, + "isVisible": false + } + }, + { + "name": "fk_pull_request_message_ref_pull_requests_1", + "sourceTableName": "pull_request_message_ref", + "sourceSchemaName": "augur_data", + "lineWidth": 1, + "visible": true, + "vertices": [ + { + "x": 3218, + "y": 2140 + }, + { + "x": 3245, + "y": 2140 + } + ], + "label": { + "x": 3214, + "y": 2142, + "width": 293, + "height": 31, + "fontName": "Arial Unicode MS", + "fontSize": 14, + "fontColor": { + "r": 51, + "g": 51, + "b": 51, + "a": 1 + }, + "isFontBold": false, + "isFontItalic": false, + "isVisible": false + } + }, + { + "name": "fk_pull_request_meta_pull_requests_1", + "sourceTableName": "pull_request_meta", + "sourceSchemaName": "augur_data", + "lineWidth": 1, + "visible": true, + "vertices": [ + { + "x": 4590, + "y": 1975 + }, + { + "x": 4590, + "y": 1910 + }, + { + "x": 3520, + "y": 1910 + } + ], + "label": { + "x": 4598, + "y": 1985, + "width": 244, + "height": 31, + "fontName": "Arial Unicode MS", + "fontSize": 14, + "fontColor": { + "r": 51, + "g": 51, + "b": 51, + "a": 1 + }, + "isFontBold": false, + "isFontItalic": false, + "isVisible": false + } + }, + { + "name": "fk_pull_request_reviewers_pull_requests_1", + "sourceTableName": "pull_request_reviewers", + "sourceSchemaName": "augur_data", + "lineWidth": 1, + "visible": true, + "vertices": [ + { + "x": 4080, + "y": 2885 + }, + { + "x": 4080, + "y": 2330 + }, + { + "x": 3520, + "y": 2330 + } + ], + "label": { + "x": 4088, + "y": 2895, + "width": 273, + "height": 31, + "fontName": "Arial Unicode MS", + "fontSize": 14, + "fontColor": { + "r": 51, + "g": 51, + "b": 51, + "a": 1 + }, + "isFontBold": false, + "isFontItalic": false, + "isVisible": false + } + }, + { + "name": "fk_pull_request_reviews_pull_requests_1", + "sourceTableName": "pull_request_reviews", + "sourceSchemaName": "augur_data", + "lineWidth": 1, + "visible": true, + "vertices": [ + { + "x": 3310, + "y": 3285 + }, + { + "x": 3310, + "y": 2606 + } + ], + "label": { + "x": 3318, + "y": 3295, + "width": 261, + "height": 31, + "fontName": "Arial Unicode MS", + "fontSize": 14, + "fontColor": { + "r": 51, + "g": 51, + "b": 51, + "a": 1 + }, + "isFontBold": false, + "isFontItalic": false, + "isVisible": false + } + }, + { + "name": "fk_pull_request_teams_pull_requests_1", + "sourceTableName": "pull_request_teams", + "sourceSchemaName": "augur_data", + "lineWidth": 1, + "visible": true, + "vertices": [ + { + "x": 3400, + "y": 1093 + }, + { + "x": 3400, + "y": 1140 + }, + { + "x": 3390, + "y": 1140 + }, + { + "x": 3390, + "y": 1685 + } + ], + "label": { + "x": 3408, + "y": 1088, + "width": 251, + "height": 31, + "fontName": "Arial Unicode MS", + "fontSize": 14, + "fontColor": { + "r": 51, + "g": 51, + "b": 51, + "a": 1 + }, + "isFontBold": false, + "isFontItalic": false, + "isVisible": false + } + }, + { + "name": "fk_pr_contribs", + "sourceTableName": "pull_requests", + "sourceSchemaName": "augur_data", + "lineWidth": 1, + "visible": true, + "vertices": [ + { + "x": 3520, + "y": 2270 + }, + { + "x": 4140, + "y": 2270 + }, + { + "x": 4140, + "y": 2410 + }, + { + "x": 4320, + "y": 2410 + }, + { + "x": 4320, + "y": 2665 + } + ], + "label": { + "x": 3516, + "y": 2272, + "width": 95, + "height": 31, + "fontName": "Arial Unicode MS", + "fontSize": 14, + "fontColor": { + "r": 51, + "g": 51, + "b": 51, + "a": 1 + }, + "isFontBold": false, + "isFontItalic": false, + "isVisible": false + } + }, + { + "name": "fk_commits_repo_1", + "sourceTableName": "commits", + "sourceSchemaName": "augur_data", + "lineWidth": 1, + "visible": true, + "vertices": [ + { + "x": 3865, + "y": 4660 + }, + { + "x": 5840, + "y": 4660 + }, + { + "x": 5840, + "y": 480 + }, + { + "x": 674, + "y": 480 + } + ], + "label": { + "x": 3861, + "y": 4667, + "width": 128, + "height": 31, + "fontName": "Arial Unicode MS", + "fontSize": 14, + "fontColor": { + "r": 51, + "g": 51, + "b": 51, + "a": 1 + }, + "isFontBold": false, + "isFontItalic": false, + "isVisible": false + } + }, + { + "name": "fk_issues_repo", + "sourceTableName": "issues", + "sourceSchemaName": "augur_data", + "lineWidth": 1, + "visible": true, + "vertices": [ + { + "x": 5190, + "y": 2625 + }, + { + "x": 5190, + "y": 610 + }, + { + "x": 674, + "y": 610 + } + ], + "label": { + "x": 5198, + "y": 2640, + "width": 101, + "height": 31, + "fontName": "Arial Unicode MS", + "fontSize": 14, + "fontColor": { + "r": 51, + "g": 51, + "b": 51, + "a": 1 + }, + "isFontBold": false, + "isFontItalic": false, + "isVisible": false + } + }, + { + "name": "fk_libraries_repo_1", + "sourceTableName": "libraries", + "sourceSchemaName": "augur_data", + "lineWidth": 1, + "visible": true, + "vertices": [ + { + "x": 5370, + "y": 585 + }, + { + "x": 5370, + "y": 550 + }, + { + "x": 674, + "y": 550 + } + ], + "label": { + "x": 5378, + "y": 600, + "width": 125, + "height": 31, + "fontName": "Arial Unicode MS", + "fontSize": 14, + "fontColor": { + "r": 51, + "g": 51, + "b": 51, + "a": 1 + }, + "isFontBold": false, + "isFontItalic": false, + "isVisible": false + } + }, + { + "name": "fk_lstm_anomaly_results_repo_1", + "sourceTableName": "lstm_anomaly_results", + "sourceSchemaName": "augur_data", + "lineWidth": 1, + "visible": true, + "vertices": [ + { + "x": 5885, + "y": 410 + }, + { + "x": 674, + "y": 410 + } + ], + "label": { + "x": 5901, + "y": 412, + "width": 210, + "height": 31, + "fontName": "Arial Unicode MS", + "fontSize": 14, + "fontColor": { + "r": 51, + "g": 51, + "b": 51, + "a": 1 + }, + "isFontBold": false, + "isFontItalic": false, + "isVisible": false + } + }, + { + "name": "fk_message_analysis_summary_repo_1", + "sourceTableName": "message_analysis_summary", + "sourceSchemaName": "augur_data", + "lineWidth": 1, + "visible": true, + "vertices": [ + { + "x": 510, + "y": 327 + }, + { + "x": 510, + "y": 345 + } + ], + "label": { + "x": 518, + "y": 317, + "width": 255, + "height": 31, + "fontName": "Arial Unicode MS", + "fontSize": 14, + "fontColor": { + "r": 51, + "g": 51, + "b": 51, + "a": 1 + }, + "isFontBold": false, + "isFontItalic": false, + "isVisible": false + } + }, + { + "name": "fk_message_sentiment_summary_repo_1", + "sourceTableName": "message_sentiment_summary", + "sourceSchemaName": "augur_data", + "lineWidth": 1, + "visible": true, + "vertices": [ + { + "x": 335, + "y": 610 + }, + { + "x": 355, + "y": 610 + } + ], + "label": { + "x": 331, + "y": 612, + "width": 265, + "height": 31, + "fontName": "Arial Unicode MS", + "fontSize": 14, + "fontColor": { + "r": 51, + "g": 51, + "b": 51, + "a": 1 + }, + "isFontBold": false, + "isFontItalic": false, + "isVisible": false + } + }, + { + "name": "fk_pull_requests_repo_1", + "sourceTableName": "pull_requests", + "sourceSchemaName": "augur_data", + "lineWidth": 1, + "visible": true, + "vertices": [ + { + "x": 3300, + "y": 1685 + }, + { + "x": 3300, + "y": 680 + }, + { + "x": 674, + "y": 680 + } + ], + "label": { + "x": 3308, + "y": 1700, + "width": 159, + "height": 31, + "fontName": "Arial Unicode MS", + "fontSize": 14, + "fontColor": { + "r": 51, + "g": 51, + "b": 51, + "a": 1 + }, + "isFontBold": false, + "isFontItalic": false, + "isVisible": false + } + }, + { + "name": "fk_releases_repo_1", + "sourceTableName": "releases", + "sourceSchemaName": "augur_data", + "lineWidth": 1, + "visible": true, + "vertices": [ + { + "x": 380, + "y": 5955 + }, + { + "x": 380, + "y": 867 + } + ], + "label": { + "x": 388, + "y": 5970, + "width": 129, + "height": 31, + "fontName": "Arial Unicode MS", + "fontSize": 14, + "fontColor": { + "r": 51, + "g": 51, + "b": 51, + "a": 1 + }, + "isFontBold": false, + "isFontItalic": false, + "isVisible": false + } + }, + { + "name": "fk_repo_badging_repo_1", + "sourceTableName": "repo_badging", + "sourceSchemaName": "augur_data", + "lineWidth": 1, + "visible": true, + "vertices": [ + { + "x": 520, + "y": 5955 + }, + { + "x": 520, + "y": 5920 + }, + { + "x": 400, + "y": 5920 + }, + { + "x": 400, + "y": 867 + } + ], + "label": { + "x": 528, + "y": 5965, + "width": 161, + "height": 31, + "fontName": "Arial Unicode MS", + "fontSize": 14, + "fontColor": { + "r": 51, + "g": 51, + "b": 51, + "a": 1 + }, + "isFontBold": false, + "isFontItalic": false, + "isVisible": false + } + }, + { + "name": "fk_repo_cluster_messages_repo_1", + "sourceTableName": "repo_cluster_messages", + "sourceSchemaName": "augur_data", + "lineWidth": 1, + "visible": true, + "vertices": [ + { + "x": 500, + "y": 5625 + }, + { + "x": 500, + "y": 5580 + }, + { + "x": 410, + "y": 5580 + }, + { + "x": 410, + "y": 867 + } + ], + "label": { + "x": 508, + "y": 5635, + "width": 223, + "height": 31, + "fontName": "Arial Unicode MS", + "fontSize": 14, + "fontColor": { + "r": 51, + "g": 51, + "b": 51, + "a": 1 + }, + "isFontBold": false, + "isFontItalic": false, + "isVisible": false + } + }, + { + "name": "repo_id", + "sourceTableName": "repo_dependencies", + "sourceSchemaName": "augur_data", + "lineWidth": 1, + "visible": true, + "vertices": [ + { + "x": 510, + "y": 5275 + }, + { + "x": 510, + "y": 5230 + }, + { + "x": 430, + "y": 5230 + }, + { + "x": 430, + "y": 867 + } + ], + "label": { + "x": 518, + "y": 5285, + "width": 54, + "height": 31, + "fontName": "Arial Unicode MS", + "fontSize": 14, + "fontColor": { + "r": 51, + "g": 51, + "b": 51, + "a": 1 + }, + "isFontBold": false, + "isFontItalic": false, + "isVisible": false + } + }, + { + "name": "repo_id", + "sourceTableName": "repo_deps_scorecard", + "sourceSchemaName": "augur_data", + "lineWidth": 1, + "visible": true, + "vertices": [ + { + "x": 530, + "y": 4915 + }, + { + "x": 530, + "y": 4880 + }, + { + "x": 440, + "y": 4880 + }, + { + "x": 440, + "y": 867 + } + ], + "label": { + "x": 538, + "y": 4925, + "width": 54, + "height": 31, + "fontName": "Arial Unicode MS", + "fontSize": 14, + "fontColor": { + "r": 51, + "g": 51, + "b": 51, + "a": 1 + }, + "isFontBold": false, + "isFontItalic": false, + "isVisible": false + } + }, + { + "name": "fk_repo_repo_groups_1", + "sourceTableName": "repo", + "sourceSchemaName": "augur_data", + "lineWidth": 1, + "visible": true, + "vertices": [ + { + "x": 674, + "y": 750 + }, + { + "x": 2380, + "y": 750 + }, + { + "x": 2380, + "y": 5255 + } + ], + "label": { + "x": 670, + "y": 757, + "width": 154, + "height": 31, + "fontName": "Arial Unicode MS", + "fontSize": 14, + "fontColor": { + "r": 51, + "g": 51, + "b": 51, + "a": 1 + }, + "isFontBold": false, + "isFontItalic": false, + "isVisible": false + } + }, + { + "name": "fk_repo_group_insights_repo_groups_1", + "sourceTableName": "repo_group_insights", + "sourceSchemaName": "augur_data", + "lineWidth": 1, + "visible": true, + "vertices": [ + { + "x": 2235, + "y": 5410 + }, + { + "x": 2255, + "y": 5410 + } + ], + "label": { + "x": 2231, + "y": 5412, + "width": 251, + "height": 31, + "fontName": "Arial Unicode MS", + "fontSize": 14, + "fontColor": { + "r": 51, + "g": 51, + "b": 51, + "a": 1 + }, + "isFontBold": false, + "isFontItalic": false, + "isVisible": false + } + }, + { + "name": "fk_message_repo_groups_list_serve_1", + "sourceTableName": "message", + "sourceSchemaName": "augur_data", + "lineWidth": 1, + "visible": true, + "vertices": [ + { + "x": 3125, + "y": 5410 + }, + { + "x": 2809, + "y": 5410 + } + ], + "label": { + "x": 3141, + "y": 5412, + "width": 248, + "height": 31, + "fontName": "Arial Unicode MS", + "fontSize": 14, + "fontColor": { + "r": 51, + "g": 51, + "b": 51, + "a": 1 + }, + "isFontBold": false, + "isFontItalic": false, + "isVisible": false + } + }, + { + "name": "fk_repo_groups_list_serve_repo_groups_1", + "sourceTableName": "repo_groups_list_serve", + "sourceSchemaName": "augur_data", + "lineWidth": 1, + "visible": true, + "vertices": [ + { + "x": 2535, + "y": 5410 + }, + { + "x": 2515, + "y": 5410 + } + ], + "label": { + "x": 2551, + "y": 5412, + "width": 269, + "height": 31, + "fontName": "Arial Unicode MS", + "fontSize": 14, + "fontColor": { + "r": 51, + "g": 51, + "b": 51, + "a": 1 + }, + "isFontBold": false, + "isFontItalic": false, + "isVisible": false + } + }, + { + "name": "fk_repo_info_repo_1", + "sourceTableName": "repo_info", + "sourceSchemaName": "augur_data", + "lineWidth": 1, + "visible": true, + "vertices": [ + { + "x": 540, + "y": 4025 + }, + { + "x": 540, + "y": 3980 + }, + { + "x": 450, + "y": 3980 + }, + { + "x": 450, + "y": 867 + } + ], + "label": { + "x": 548, + "y": 4035, + "width": 134, + "height": 31, + "fontName": "Arial Unicode MS", + "fontSize": 14, + "fontColor": { + "r": 51, + "g": 51, + "b": 51, + "a": 1 + }, + "isFontBold": false, + "isFontItalic": false, + "isVisible": false + } + }, + { + "name": "fk_repo_insights_repo_1", + "sourceTableName": "repo_insights", + "sourceSchemaName": "augur_data", + "lineWidth": 1, + "visible": true, + "vertices": [ + { + "x": 550, + "y": 3585 + }, + { + "x": 550, + "y": 3540 + }, + { + "x": 470, + "y": 3540 + }, + { + "x": 470, + "y": 867 + } + ], + "label": { + "x": 558, + "y": 3595, + "width": 159, + "height": 31, + "fontName": "Arial Unicode MS", + "fontSize": 14, + "fontColor": { + "r": 51, + "g": 51, + "b": 51, + "a": 1 + }, + "isFontBold": false, + "isFontItalic": false, + "isVisible": false + } + }, + { + "name": "repo_id_ref", + "sourceTableName": "repo_insights_records", + "sourceSchemaName": "augur_data", + "lineWidth": 1, + "visible": true, + "vertices": [ + { + "x": 570, + "y": 3175 + }, + { + "x": 570, + "y": 3130 + }, + { + "x": 480, + "y": 3130 + }, + { + "x": 480, + "y": 867 + } + ], + "label": { + "x": 373, + "y": 3942, + "width": 78, + "height": 31, + "fontName": "Arial Unicode MS", + "fontSize": 14, + "fontColor": { + "r": 51, + "g": 51, + "b": 51, + "a": 1 + }, + "isFontBold": false, + "isFontItalic": false, + "isVisible": false + } + }, + { + "name": "fk_repo_labor_repo_1", + "sourceTableName": "repo_labor", + "sourceSchemaName": "augur_data", + "lineWidth": 1, + "visible": true, + "vertices": [ + { + "x": 580, + "y": 2655 + }, + { + "x": 580, + "y": 2610 + }, + { + "x": 490, + "y": 2610 + }, + { + "x": 490, + "y": 867 + } + ], + "label": { + "x": 383, + "y": 3422, + "width": 142, + "height": 31, + "fontName": "Arial Unicode MS", + "fontSize": 14, + "fontColor": { + "r": 51, + "g": 51, + "b": 51, + "a": 1 + }, + "isFontBold": false, + "isFontItalic": false, + "isVisible": false + } + }, + { + "name": "fk_repo_meta_repo_1", + "sourceTableName": "repo_meta", + "sourceSchemaName": "augur_data", + "lineWidth": 1, + "visible": true, + "vertices": [ + { + "x": 600, + "y": 2315 + }, + { + "x": 600, + "y": 2280 + }, + { + "x": 510, + "y": 2280 + }, + { + "x": 510, + "y": 867 + } + ], + "label": { + "x": 403, + "y": 3082, + "width": 142, + "height": 31, + "fontName": "Arial Unicode MS", + "fontSize": 14, + "fontColor": { + "r": 51, + "g": 51, + "b": 51, + "a": 1 + }, + "isFontBold": false, + "isFontItalic": false, + "isVisible": false + } + }, + { + "name": "repo_linker_sbom", + "sourceTableName": "repo_sbom_scans", + "sourceSchemaName": "augur_data", + "lineWidth": 1, + "visible": true, + "vertices": [ + { + "x": 610, + "y": 2095 + }, + { + "x": 610, + "y": 2050 + }, + { + "x": 520, + "y": 2050 + }, + { + "x": 520, + "y": 867 + } + ], + "label": { + "x": 413, + "y": 2862, + "width": 118, + "height": 31, + "fontName": "Arial Unicode MS", + "fontSize": 14, + "fontColor": { + "r": 51, + "g": 51, + "b": 51, + "a": 1 + }, + "isFontBold": false, + "isFontItalic": false, + "isVisible": false + } + }, + { + "name": "fk_repo_stats_repo_1", + "sourceTableName": "repo_stats", + "sourceSchemaName": "augur_data", + "lineWidth": 1, + "visible": true, + "vertices": [ + { + "x": 630, + "y": 1765 + }, + { + "x": 630, + "y": 1720 + }, + { + "x": 540, + "y": 1720 + }, + { + "x": 540, + "y": 867 + } + ], + "label": { + "x": 433, + "y": 2532, + "width": 141, + "height": 31, + "fontName": "Arial Unicode MS", + "fontSize": 14, + "fontColor": { + "r": 51, + "g": 51, + "b": 51, + "a": 1 + }, + "isFontBold": false, + "isFontItalic": false, + "isVisible": false + } + }, + { + "name": "fk_repo_test_coverage_repo_1", + "sourceTableName": "repo_test_coverage", + "sourceSchemaName": "augur_data", + "lineWidth": 1, + "visible": true, + "vertices": [ + { + "x": 640, + "y": 1285 + }, + { + "x": 640, + "y": 1240 + }, + { + "x": 550, + "y": 1240 + }, + { + "x": 550, + "y": 867 + } + ], + "label": { + "x": 443, + "y": 2052, + "width": 198, + "height": 31, + "fontName": "Arial Unicode MS", + "fontSize": 14, + "fontColor": { + "r": 51, + "g": 51, + "b": 51, + "a": 1 + }, + "isFontBold": false, + "isFontItalic": false, + "isVisible": false + } + }, + { + "name": "fk_repo_topic_repo_1", + "sourceTableName": "repo_topic", + "sourceSchemaName": "augur_data", + "lineWidth": 1, + "visible": true, + "vertices": [ + { + "x": 650, + "y": 955 + }, + { + "x": 650, + "y": 910 + }, + { + "x": 650, + "y": 910 + }, + { + "x": 650, + "y": 867 + } + ], + "label": { + "x": 453, + "y": 1722, + "width": 141, + "height": 31, + "fontName": "Arial Unicode MS", + "fontSize": 14, + "fontColor": { + "r": 51, + "g": 51, + "b": 51, + "a": 1 + }, + "isFontBold": false, + "isFontItalic": false, + "isVisible": false + } + }, + { + "name": "annotations_annotation_type_id_fkey", + "sourceTableName": "annotations", + "sourceSchemaName": "spdx", + "lineWidth": 1, + "visible": true, + "vertices": [ + { + "x": 2030, + "y": 7933 + }, + { + "x": 2030, + "y": 7955 + } + ], + "label": { + "x": 1260, + "y": 10395, + "width": 237, + "height": 31, + "fontName": "Arial Unicode MS", + "fontSize": 14, + "fontColor": { + "r": 51, + "g": 51, + "b": 51, + "a": 1 + }, + "isFontBold": false, + "isFontItalic": false, + "isVisible": false + } + }, + { + "name": "annotations_creator_id_fkey", + "sourceTableName": "annotations", + "sourceSchemaName": "spdx", + "lineWidth": 1, + "visible": true, + "vertices": [ + { + "x": 1925, + "y": 7820 + }, + { + "x": 820, + "y": 7820 + }, + { + "x": 820, + "y": 7690 + } + ], + "label": { + "x": 1260, + "y": 10193, + "width": 182, + "height": 31, + "fontName": "Arial Unicode MS", + "fontSize": 14, + "fontColor": { + "r": 51, + "g": 51, + "b": 51, + "a": 1 + }, + "isFontBold": false, + "isFontItalic": false, + "isVisible": false + } + }, + { + "name": "creators_creator_type_id_fkey", + "sourceTableName": "creators", + "sourceSchemaName": "spdx", + "lineWidth": 1, + "visible": true, + "vertices": [ + { + "x": 725, + "y": 7610 + }, + { + "x": 707, + "y": 7610 + } + ], + "label": { + "x": 450, + "y": 9864, + "width": 194, + "height": 31, + "fontName": "Arial Unicode MS", + "fontSize": 14, + "fontColor": { + "r": 51, + "g": 51, + "b": 51, + "a": 1 + }, + "isFontBold": false, + "isFontItalic": false, + "isVisible": false + } + }, + { + "name": "annotations_document_id_fkey", + "sourceTableName": "annotations", + "sourceSchemaName": "spdx", + "lineWidth": 1, + "visible": true, + "vertices": [ + { + "x": 2030, + "y": 7705 + }, + { + "x": 2030, + "y": 7686 + } + ], + "label": { + "x": 1310, + "y": 10187, + "width": 200, + "height": 31, + "fontName": "Arial Unicode MS", + "fontSize": 14, + "fontColor": { + "r": 51, + "g": 51, + "b": 51, + "a": 1 + }, + "isFontBold": false, + "isFontItalic": false, + "isVisible": false + } + }, + { + "name": "documents_document_namespace_id_fkey", + "sourceTableName": "documents", + "sourceSchemaName": "spdx", + "lineWidth": 1, + "visible": true, + "vertices": [ + { + "x": 2157, + "y": 7460 + }, + { + "x": 2200, + "y": 7460 + }, + { + "x": 2200, + "y": 7320 + }, + { + "x": 2235, + "y": 7320 + } + ], + "label": { + "x": 1495, + "y": 10001, + "width": 275, + "height": 31, + "fontName": "Arial Unicode MS", + "fontSize": 14, + "fontColor": { + "r": 51, + "g": 51, + "b": 51, + "a": 1 + }, + "isFontBold": false, + "isFontItalic": false, + "isVisible": false + } + }, + { + "name": "documents_creators_creator_id_fkey", + "sourceTableName": "documents_creators", + "sourceSchemaName": "spdx", + "lineWidth": 1, + "visible": true, + "vertices": [ + { + "x": 935, + "y": 7610 + }, + { + "x": 907, + "y": 7610 + } + ], + "label": { + "x": 460, + "y": 9864, + "width": 236, + "height": 31, + "fontName": "Arial Unicode MS", + "fontSize": 14, + "fontColor": { + "r": 51, + "g": 51, + "b": 51, + "a": 1 + }, + "isFontBold": false, + "isFontItalic": false, + "isVisible": false + } + }, + { + "name": "documents_creators_document_id_fkey", + "sourceTableName": "documents_creators", + "sourceSchemaName": "spdx", + "lineWidth": 1, + "visible": true, + "vertices": [ + { + "x": 1151, + "y": 7610 + }, + { + "x": 1905, + "y": 7610 + } + ], + "label": { + "x": 549, + "y": 9931, + "width": 254, + "height": 31, + "fontName": "Arial Unicode MS", + "fontSize": 14, + "fontColor": { + "r": 51, + "g": 51, + "b": 51, + "a": 1 + }, + "isFontBold": false, + "isFontItalic": false, + "isVisible": false + } + }, + { + "name": "external_refs_document_id_fkey", + "sourceTableName": "external_refs", + "sourceSchemaName": "spdx", + "lineWidth": 1, + "visible": true, + "vertices": [ + { + "x": 2235, + "y": 7530 + }, + { + "x": 2157, + "y": 7530 + } + ], + "label": { + "x": 1370, + "y": 10155, + "width": 208, + "height": 31, + "fontName": "Arial Unicode MS", + "fontSize": 14, + "fontColor": { + "r": 51, + "g": 51, + "b": 51, + "a": 1 + }, + "isFontBold": false, + "isFontItalic": false, + "isVisible": false + } + }, + { + "name": "external_refs_document_namespace_id_fkey", + "sourceTableName": "external_refs", + "sourceSchemaName": "spdx", + "lineWidth": 1, + "visible": true, + "vertices": [ + { + "x": 2360, + "y": 7395 + }, + { + "x": 2360, + "y": 7378 + } + ], + "label": { + "x": 1380, + "y": 10097, + "width": 287, + "height": 31, + "fontName": "Arial Unicode MS", + "fontSize": 14, + "fontColor": { + "r": 51, + "g": 51, + "b": 51, + "a": 1 + }, + "isFontBold": false, + "isFontItalic": false, + "isVisible": false + } + }, + { + "name": "file_contributors_file_id_fkey", + "sourceTableName": "file_contributors", + "sourceSchemaName": "spdx", + "lineWidth": 1, + "visible": true, + "vertices": [ + { + "x": 2090, + "y": 6559 + }, + { + "x": 2090, + "y": 6575 + } + ], + "label": { + "x": 870, + "y": 8128, + "width": 182, + "height": 31, + "fontName": "Arial Unicode MS", + "fontSize": 14, + "fontColor": { + "r": 51, + "g": 51, + "b": 51, + "a": 1 + }, + "isFontBold": false, + "isFontItalic": false, + "isVisible": false + } + }, + { + "name": "files_licenses_file_id_fkey", + "sourceTableName": "files_licenses", + "sourceSchemaName": "spdx", + "lineWidth": 1, + "visible": true, + "vertices": [ + { + "x": 2090, + "y": 6825 + }, + { + "x": 2090, + "y": 6803 + } + ], + "label": { + "x": 1427, + "y": 8699, + "width": 166, + "height": 31, + "fontName": "Arial Unicode MS", + "fontSize": 14, + "fontColor": { + "r": 51, + "g": 51, + "b": 51, + "a": 1 + }, + "isFontBold": false, + "isFontItalic": false, + "isVisible": false + } + }, + { + "name": "files_scans_file_id_fkey", + "sourceTableName": "files_scans", + "sourceSchemaName": "spdx", + "lineWidth": 1, + "visible": true, + "vertices": [ + { + "x": 1985, + "y": 6740 + }, + { + "x": 2005, + "y": 6740 + } + ], + "label": { + "x": 743, + "y": 8464, + "width": 152, + "height": 31, + "fontName": "Arial Unicode MS", + "fontSize": 14, + "fontColor": { + "r": 51, + "g": 51, + "b": 51, + "a": 1 + }, + "isFontBold": false, + "isFontItalic": false, + "isVisible": false + } + }, + { + "name": "annotations_identifier_id_fkey", + "sourceTableName": "annotations", + "sourceSchemaName": "spdx", + "lineWidth": 1, + "visible": true, + "vertices": [ + { + "x": 2141, + "y": 7820 + }, + { + "x": 2820, + "y": 7820 + }, + { + "x": 2820, + "y": 7682 + } + ], + "label": { + "x": 1339, + "y": 10401, + "width": 191, + "height": 31, + "fontName": "Arial Unicode MS", + "fontSize": 14, + "fontColor": { + "r": 51, + "g": 51, + "b": 51, + "a": 1 + }, + "isFontBold": false, + "isFontItalic": false, + "isVisible": false + } + }, + { + "name": "identifiers_document_id_fkey", + "sourceTableName": "identifiers", + "sourceSchemaName": "spdx", + "lineWidth": 1, + "visible": true, + "vertices": [ + { + "x": 2705, + "y": 7630 + }, + { + "x": 2157, + "y": 7630 + } + ], + "label": { + "x": 1963, + "y": 9504, + "width": 187, + "height": 31, + "fontName": "Arial Unicode MS", + "fontSize": 14, + "fontColor": { + "r": 51, + "g": 51, + "b": 51, + "a": 1 + }, + "isFontBold": false, + "isFontItalic": false, + "isVisible": false + } + }, + { + "name": "identifiers_document_namespace_id_fkey", + "sourceTableName": "identifiers", + "sourceSchemaName": "spdx", + "lineWidth": 1, + "visible": true, + "vertices": [ + { + "x": 2705, + "y": 7570 + }, + { + "x": 2520, + "y": 7570 + }, + { + "x": 2520, + "y": 7320 + }, + { + "x": 2473, + "y": 7320 + } + ], + "label": { + "x": 1963, + "y": 9504, + "width": 267, + "height": 31, + "fontName": "Arial Unicode MS", + "fontSize": 14, + "fontColor": { + "r": 51, + "g": 51, + "b": 51, + "a": 1 + }, + "isFontBold": false, + "isFontItalic": false, + "isVisible": false + } + }, + { + "name": "documents_data_license_id_fkey", + "sourceTableName": "documents", + "sourceSchemaName": "spdx", + "lineWidth": 1, + "visible": true, + "vertices": [ + { + "x": 2090, + "y": 7395 + }, + { + "x": 2090, + "y": 7282 + } + ], + "label": { + "x": 1500, + "y": 9673, + "width": 212, + "height": 31, + "fontName": "Arial Unicode MS", + "fontSize": 14, + "fontColor": { + "r": 51, + "g": 51, + "b": 51, + "a": 1 + }, + "isFontBold": false, + "isFontItalic": false, + "isVisible": false + } + }, + { + "name": "files_licenses_license_id_fkey", + "sourceTableName": "files_licenses", + "sourceSchemaName": "spdx", + "lineWidth": 1, + "visible": true, + "vertices": [ + { + "x": 2090, + "y": 6990 + }, + { + "x": 2090, + "y": 7075 + } + ], + "label": { + "x": 1500, + "y": 8989, + "width": 192, + "height": 31, + "fontName": "Arial Unicode MS", + "fontSize": 14, + "fontColor": { + "r": 51, + "g": 51, + "b": 51, + "a": 1 + }, + "isFontBold": false, + "isFontItalic": false, + "isVisible": false + } + }, + { + "name": "documents_package_id_fkey", + "sourceTableName": "documents", + "sourceSchemaName": "spdx", + "lineWidth": 1, + "visible": true, + "vertices": [ + { + "x": 1905, + "y": 7540 + }, + { + "x": 1190, + "y": 7540 + }, + { + "x": 1190, + "y": 7196 + } + ], + "label": { + "x": 1370, + "y": 9810, + "width": 187, + "height": 31, + "fontName": "Arial Unicode MS", + "fontSize": 14, + "fontColor": { + "r": 51, + "g": 51, + "b": 51, + "a": 1 + }, + "isFontBold": false, + "isFontItalic": false, + "isVisible": false + } + }, + { + "name": "identifiers_package_id_fkey", + "sourceTableName": "identifiers", + "sourceSchemaName": "spdx", + "lineWidth": 1, + "visible": true, + "vertices": [ + { + "x": 2880, + "y": 7475 + }, + { + "x": 2880, + "y": 6310 + }, + { + "x": 1130, + "y": 6310 + }, + { + "x": 1130, + "y": 6695 + } + ], + "label": { + "x": 2230, + "y": 9267, + "width": 179, + "height": 31, + "fontName": "Arial Unicode MS", + "fontSize": 14, + "fontColor": { + "r": 51, + "g": 51, + "b": 51, + "a": 1 + }, + "isFontBold": false, + "isFontItalic": false, + "isVisible": false + } + }, + { + "name": "packages_concluded_license_id_fkey", + "sourceTableName": "packages", + "sourceSchemaName": "spdx", + "lineWidth": 1, + "visible": true, + "vertices": [ + { + "x": 1305, + "y": 7145 + }, + { + "x": 1985, + "y": 7145 + } + ], + "label": { + "x": 978, + "y": 9094, + "width": 240, + "height": 31, + "fontName": "Arial Unicode MS", + "fontSize": 14, + "fontColor": { + "r": 51, + "g": 51, + "b": 51, + "a": 1 + }, + "isFontBold": false, + "isFontItalic": false, + "isVisible": false + } + }, + { + "name": "packages_declared_license_id_fkey", + "sourceTableName": "packages", + "sourceSchemaName": "spdx", + "lineWidth": 1, + "visible": true, + "vertices": [ + { + "x": 1305, + "y": 7115 + }, + { + "x": 1985, + "y": 7115 + } + ], + "label": { + "x": 1008, + "y": 9094, + "width": 230, + "height": 31, + "fontName": "Arial Unicode MS", + "fontSize": 14, + "fontColor": { + "r": 51, + "g": 51, + "b": 51, + "a": 1 + }, + "isFontBold": false, + "isFontItalic": false, + "isVisible": false + } + }, + { + "name": "packages_originator_id_fkey", + "sourceTableName": "packages", + "sourceSchemaName": "spdx", + "lineWidth": 1, + "visible": true, + "vertices": [ + { + "x": 1065, + "y": 6955 + }, + { + "x": 835, + "y": 6955 + }, + { + "x": 835, + "y": 7525 + } + ], + "label": { + "x": 670, + "y": 8714, + "width": 184, + "height": 31, + "fontName": "Arial Unicode MS", + "fontSize": 14, + "fontColor": { + "r": 51, + "g": 51, + "b": 51, + "a": 1 + }, + "isFontBold": false, + "isFontItalic": false, + "isVisible": false + } + }, + { + "name": "packages_supplier_id_fkey", + "sourceTableName": "packages", + "sourceSchemaName": "spdx", + "lineWidth": 1, + "visible": true, + "vertices": [ + { + "x": 1065, + "y": 6925 + }, + { + "x": 805, + "y": 6925 + }, + { + "x": 805, + "y": 7525 + } + ], + "label": { + "x": 670, + "y": 8714, + "width": 175, + "height": 31, + "fontName": "Arial Unicode MS", + "fontSize": 14, + "fontColor": { + "r": 51, + "g": 51, + "b": 51, + "a": 1 + }, + "isFontBold": false, + "isFontItalic": false, + "isVisible": false + } + }, + { + "name": "identifiers_package_file_id_fkey", + "sourceTableName": "identifiers", + "sourceSchemaName": "spdx", + "lineWidth": 1, + "visible": true, + "vertices": [ + { + "x": 2705, + "y": 7520 + }, + { + "x": 2580, + "y": 7520 + }, + { + "x": 2580, + "y": 6830 + }, + { + "x": 2479, + "y": 6830 + } + ], + "label": { + "x": 1963, + "y": 9344, + "width": 204, + "height": 31, + "fontName": "Arial Unicode MS", + "fontSize": 14, + "fontColor": { + "r": 51, + "g": 51, + "b": 51, + "a": 1 + }, + "isFontBold": false, + "isFontItalic": false, + "isVisible": false + } + }, + { + "name": "fk_package_packages_files", + "sourceTableName": "packages", + "sourceSchemaName": "spdx", + "lineWidth": 1, + "visible": true, + "vertices": [ + { + "x": 1215, + "y": 6695 + }, + { + "x": 1215, + "y": 6385 + }, + { + "x": 2365, + "y": 6385 + }, + { + "x": 2365, + "y": 6685 + } + ], + "label": { + "x": 1032, + "y": 8302, + "width": 178, + "height": 31, + "fontName": "Arial Unicode MS", + "fontSize": 14, + "fontColor": { + "r": 51, + "g": 51, + "b": 51, + "a": 1 + }, + "isFontBold": false, + "isFontItalic": false, + "isVisible": false + } + }, + { + "name": "fk_package_files_packages", + "sourceTableName": "packages_files", + "sourceSchemaName": "spdx", + "lineWidth": 1, + "visible": true, + "vertices": [ + { + "x": 2395, + "y": 6685 + }, + { + "x": 2395, + "y": 6355 + }, + { + "x": 1185, + "y": 6355 + }, + { + "x": 1185, + "y": 6695 + } + ], + "label": { + "x": 1380, + "y": 8397, + "width": 178, + "height": 31, + "fontName": "Arial Unicode MS", + "fontSize": 14, + "fontColor": { + "r": 51, + "g": 51, + "b": 51, + "a": 1 + }, + "isFontBold": false, + "isFontItalic": false, + "isVisible": false + } + }, + { + "name": "packages_files_concluded_license_id_fkey", + "sourceTableName": "packages_files", + "sourceSchemaName": "spdx", + "lineWidth": 1, + "visible": true, + "vertices": [ + { + "x": 2380, + "y": 6892 + }, + { + "x": 2380, + "y": 7170 + }, + { + "x": 2197, + "y": 7170 + } + ], + "label": { + "x": 1380, + "y": 8771, + "width": 272, + "height": 31, + "fontName": "Arial Unicode MS", + "fontSize": 14, + "fontColor": { + "r": 51, + "g": 51, + "b": 51, + "a": 1 + }, + "isFontBold": false, + "isFontItalic": false, + "isVisible": false + } + }, + { + "name": "packages_files_file_id_fkey", + "sourceTableName": "packages_files", + "sourceSchemaName": "spdx", + "lineWidth": 1, + "visible": true, + "vertices": [ + { + "x": 2265, + "y": 6740 + }, + { + "x": 2187, + "y": 6740 + } + ], + "label": { + "x": 1176, + "y": 8504, + "width": 176, + "height": 31, + "fontName": "Arial Unicode MS", + "fontSize": 14, + "fontColor": { + "r": 51, + "g": 51, + "b": 51, + "a": 1 + }, + "isFontBold": false, + "isFontItalic": false, + "isVisible": false + } + }, + { + "name": "packages_scans_package_id_fkey", + "sourceTableName": "packages_scans", + "sourceSchemaName": "spdx", + "lineWidth": 1, + "visible": true, + "vertices": [ + { + "x": 1395, + "y": 6750 + }, + { + "x": 1305, + "y": 6750 + } + ], + "label": { + "x": 1173, + "y": 8474, + "width": 223, + "height": 31, + "fontName": "Arial Unicode MS", + "fontSize": 14, + "fontColor": { + "r": 51, + "g": 51, + "b": 51, + "a": 1 + }, + "isFontBold": false, + "isFontItalic": false, + "isVisible": false + } + }, + { + "name": "relationships_left_identifier_id_fkey", + "sourceTableName": "relationships", + "sourceSchemaName": "spdx", + "lineWidth": 1, + "visible": true, + "vertices": [ + { + "x": 2775, + "y": 7451 + }, + { + "x": 2775, + "y": 7475 + } + ], + "label": { + "x": 2325, + "y": 9298, + "width": 223, + "height": 31, + "fontName": "Arial Unicode MS", + "fontSize": 14, + "fontColor": { + "r": 51, + "g": 51, + "b": 51, + "a": 1 + }, + "isFontBold": false, + "isFontItalic": false, + "isVisible": false + } + }, + { + "name": "relationships_relationship_type_id_fkey", + "sourceTableName": "relationships", + "sourceSchemaName": "spdx", + "lineWidth": 1, + "visible": true, + "vertices": [ + { + "x": 2730, + "y": 7265 + }, + { + "x": 2730, + "y": 7238 + } + ], + "label": { + "x": 2477, + "y": 9147, + "width": 250, + "height": 31, + "fontName": "Arial Unicode MS", + "fontSize": 14, + "fontColor": { + "r": 51, + "g": 51, + "b": 51, + "a": 1 + }, + "isFontBold": false, + "isFontItalic": false, + "isVisible": false + } + }, + { + "name": "relationships_right_identifier_id_fkey", + "sourceTableName": "relationships", + "sourceSchemaName": "spdx", + "lineWidth": 1, + "visible": true, + "vertices": [ + { + "x": 2745, + "y": 7451 + }, + { + "x": 2745, + "y": 7475 + } + ], + "label": { + "x": 2295, + "y": 9328, + "width": 232, + "height": 31, + "fontName": "Arial Unicode MS", + "fontSize": 14, + "fontColor": { + "r": 51, + "g": 51, + "b": 51, + "a": 1 + }, + "isFontBold": false, + "isFontItalic": false, + "isVisible": false + } + }, + { + "name": "files_scans_scanner_id_fkey", + "sourceTableName": "files_scans", + "sourceSchemaName": "spdx", + "lineWidth": 1, + "visible": true, + "vertices": [ + { + "x": 1805, + "y": 6740 + }, + { + "x": 1785, + "y": 6740 + } + ], + "label": { + "x": 583, + "y": 8464, + "width": 184, + "height": 31, + "fontName": "Arial Unicode MS", + "fontSize": 14, + "fontColor": { + "r": 51, + "g": 51, + "b": 51, + "a": 1 + }, + "isFontBold": false, + "isFontItalic": false, + "isVisible": false + } + }, + { + "name": "packages_scans_scanner_id_fkey", + "sourceTableName": "packages_scans", + "sourceSchemaName": "spdx", + "lineWidth": 1, + "visible": true, + "vertices": [ + { + "x": 1588, + "y": 6740 + }, + { + "x": 1605, + "y": 6740 + } + ], + "label": { + "x": 1260, + "y": 8464, + "width": 219, + "height": 31, + "fontName": "Arial Unicode MS", + "fontSize": 14, + "fontColor": { + "r": 51, + "g": 51, + "b": 51, + "a": 1 + }, + "isFontBold": false, + "isFontItalic": false, + "isVisible": false + } + } + ], + "viewRelations": [] + } + ] +} \ No newline at end of file diff --git a/schema/20210811-augur-0.2.1-release.pdf b/schema/20210811-augur-0.2.1-release.pdf new file mode 100644 index 0000000000..1c5a247536 Binary files /dev/null and b/schema/20210811-augur-0.2.1-release.pdf differ diff --git a/schema/20210811-augur-0.2.1-release.png b/schema/20210811-augur-0.2.1-release.png new file mode 100644 index 0000000000..7459c36a9a Binary files /dev/null and b/schema/20210811-augur-0.2.1-release.png differ diff --git a/schema/20210811-augur-0.2.1-release.svg b/schema/20210811-augur-0.2.1-release.svg new file mode 100644 index 0000000000..14e714627b --- /dev/null +++ b/schema/20210811-augur-0.2.1-release.svg @@ -0,0 +1,60200 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/schema/create_schema.sql b/schema/create_schema.sql index d3868c5983..08fa0355b6 100644 --- a/schema/create_schema.sql +++ b/schema/create_schema.sql @@ -54,4 +54,12 @@ \i schema/generate/49-schema_update_51.sql \i schema/generate/50-schema_update_52.sql \i schema/generate/51-schema_update_53.sql +\i schema/generate/52-schema_update_54.sql +\i schema/generate/53-schema_update_55.sql +\i schema/generate/54-schema_update_56.sql +\i schema/generate/55-schema_update_57.sql +\i schema/generate/56-schema_update_58.sql +\i schema/generate/57-schema_update_59.sql +\i schema/generate/58-schema_update_60.sql +\i schema/generate/59-schema_update_61.sql diff --git a/schema/generate/05-seed_data.sql b/schema/generate/05-seed_data.sql index 64c731841c..7fcaa4f9fd 100644 --- a/schema/generate/05-seed_data.sql +++ b/schema/generate/05-seed_data.sql @@ -3,11 +3,19 @@ BEGIN; INSERT INTO "augur_data"."platform" VALUES (25150, 'GitHub', '3', '2019-06-05', 'Manual Entry', 'Sean Goggins', 'GitHub', '2019-06-05 17:23:42'); COMMIT; +BEGIN; + INSERT INTO "augur_data"."contributors"("cntrb_id", "cntrb_login", "cntrb_email", "cntrb_company", "cntrb_created_at", "cntrb_type", "cntrb_fake", "cntrb_deleted", "cntrb_long", "cntrb_lat", "cntrb_country_code", "cntrb_state", "cntrb_city", "cntrb_location", "cntrb_canonical", "gh_user_id", "gh_login", "gh_url", "gh_html_url", "gh_node_id", "gh_avatar_url", "gh_gravatar_id", "gh_followers_url", "gh_following_url", "gh_gists_url", "gh_starred_url", "gh_subscriptions_url", "gh_organizations_url", "gh_repos_url", "gh_events_url", "gh_received_events_url", "gh_type", "gh_site_admin", "tool_source", "tool_version", "data_source", "data_collection_date") VALUES (1, 'not-provided', NULL, NULL, '2019-06-13 11:33:39', NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 'nobody', 'http://fake.me', 'http://fake.me', 'x', 'http://fake.me', NULL, 'http://fake.me', 'http://fake.me', 'http://fake.me', 'http://fake.me', 'http://fake.me', 'http://fake.me', 'http://fake.me', 'http://fake.me', NULL, NULL, NULL, NULL, NULL, NULL, '2019-06-13 16:35:25'); INSERT INTO "augur_data"."repo_groups"("repo_group_id", "rg_name", "rg_description", "rg_website", "rg_recache", "rg_last_modified", "rg_type", "tool_source", "tool_version", "data_source", "data_collection_date") VALUES (1, 'Default Repo Group', 'The default repo group created by the schema generation script', '', 0, '2019-06-03 15:55:20', 'GitHub Organization', 'load', 'one', 'git', '2019-06-05 13:36:25'); -INSERT INTO "augur_data"."repo"("repo_id", "repo_group_id", "repo_git", "repo_path", "repo_name", "repo_added", "repo_status", "repo_type", "url", "owner_id", "description", "primary_language", "created_at", "forked_from", "updated_at", "tool_source", "tool_version", "data_source", "data_collection_date") VALUES (1, 1, 'https://github.com/chaoss/augur.git', 'github.com/chaoss/', 'augur', '2019-05-31 14:28:44', 'New', '', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'data load', 'one', 'git', '2019-06-05 18:41:14'); +COMMIT; + +BEGIN; + + + +COMMIT; -- ---------------------------- -- Records of settings diff --git a/schema/generate/15-schema_update_17.sql b/schema/generate/15-schema_update_17.sql index 100a639d30..bddd247b52 100644 --- a/schema/generate/15-schema_update_17.sql +++ b/schema/generate/15-schema_update_17.sql @@ -1,4 +1,5 @@ -- #SPDX-License-Identifier: MIT +BEGIN; ALTER TABLE "augur_data"."repo" ALTER COLUMN "forked_from" TYPE varchar USING "forked_from"::varchar; @@ -7,4 +8,14 @@ ALTER TABLE "augur_data"."repo" ADD COLUMN IF NOT EXISTS "repo_archived_date_collected" timestamptz(0), ALTER COLUMN "forked_from" TYPE varchar USING "forked_from"::varchar; + +INSERT INTO "augur_data"."repo" ("repo_id", "repo_group_id", "repo_git", "repo_path", "repo_name", "repo_added", "repo_status", "repo_type", "url", "owner_id", "description", "primary_language", "created_at", "forked_from", "updated_at", "tool_source", "tool_version", "data_source", "data_collection_date", "repo_archived", "repo_archived_date_collected") VALUES (1, 1, 'https://github.com/chaoss/augur', NULL, NULL, '2021-08-10 14:28:44', 'New', '', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'data load', 'one', 'git', '2021-06-05 18:41:14', NULL, NULL); +INSERT INTO "augur_data"."repo" ("repo_id", "repo_group_id", "repo_git", "repo_path", "repo_name", "repo_added", "repo_status", "repo_type", "url", "owner_id", "description", "primary_language", "created_at", "forked_from", "updated_at", "tool_source", "tool_version", "data_source", "data_collection_date", "repo_archived", "repo_archived_date_collected") VALUES (2, 1, 'https://github.com/saltstack/salt', NULL, NULL, '2021-08-10 17:58:43', 'New', '', NULL, NULL, NULL, NULL, NULL, 'Parent not available', NULL, NULL, NULL, NULL, NULL, 0, NULL); + +COMMIT; + +BEGIN; + update "augur_operations"."augur_settings" set value = 17 where setting = 'augur_data_version'; + +COMMIT; \ No newline at end of file diff --git a/schema/generate/52-schema_update_54.sql b/schema/generate/52-schema_update_54.sql new file mode 100644 index 0000000000..418727d8ac --- /dev/null +++ b/schema/generate/52-schema_update_54.sql @@ -0,0 +1,31 @@ +BEGIN; +DROP TABLE IF EXISTS "augur_data"."repo_deps_scorecard"; +CREATE TABLE "augur_data"."repo_deps_scorecard" ( + "repo_deps_scorecard_id" serial8 NOT NULL, + "repo_id" int8, + "name" varchar COLLATE "pg_catalog"."default", + "status" varchar COLLATE "pg_catalog"."default", + "score" varchar COLLATE "pg_catalog"."default", + "tool_source" varchar COLLATE "pg_catalog"."default", + "tool_version" varchar COLLATE "pg_catalog"."default", + "data_source" varchar COLLATE "pg_catalog"."default", + "data_collection_date" timestamp(0) DEFAULT CURRENT_TIMESTAMP +) +; +ALTER TABLE "augur_data"."repo_deps_scorecard" OWNER TO "augur"; + +-- ---------------------------- +-- Primary Key structure for table repo_deps_scorecard +-- ---------------------------- +ALTER TABLE "augur_data"."repo_deps_scorecard" ADD CONSTRAINT "repo_deps_scorecard_pkey1" PRIMARY KEY ("repo_deps_scorecard_id"); + +-- ---------------------------- +-- Foreign Keys structure for table repo_deps_scorecard +-- ---------------------------- +ALTER TABLE "augur_data"."repo_deps_scorecard" ADD CONSTRAINT "repo_id" FOREIGN KEY ("repo_id") REFERENCES "augur_data"."repo" ("repo_id") ON DELETE NO ACTION ON UPDATE NO ACTION; + + +update "augur_operations"."augur_settings" set value = 54 + where setting = 'augur_data_version'; + +COMMIT; \ No newline at end of file diff --git a/schema/generate/53-schema_update_55.sql b/schema/generate/53-schema_update_55.sql new file mode 100644 index 0000000000..f91b484666 --- /dev/null +++ b/schema/generate/53-schema_update_55.sql @@ -0,0 +1,17 @@ +BEGIN; + + +ALTER TABLE "augur_operations"."worker_history" ALTER COLUMN "oauth_id" DROP NOT NULL; + +ALTER TABLE "augur_data"."pull_requests" DROP CONSTRAINT if exists "fk_pull_requests_pull_request_meta_2"; + +ALTER TABLE "augur_data"."pull_requests" DROP CONSTRAINT if exists "fk_pull_requests_pull_request_meta_1"; + +CREATE INDEX IF NOT EXISTS "cntrb_canonica-idx11" ON "augur_data"."contributors" USING btree ( + "cntrb_canonical" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST +); + +update "augur_operations"."augur_settings" set value = 55 where setting = 'augur_data_version'; + +COMMIT; + diff --git a/schema/generate/54-schema_update_56.sql b/schema/generate/54-schema_update_56.sql new file mode 100644 index 0000000000..fa2676e53c --- /dev/null +++ b/schema/generate/54-schema_update_56.sql @@ -0,0 +1,12 @@ +BEGIN; + +alter index if exists cmt_author_contrib_worker set (pages_per_range = 64,autosummarize = on); +alter index if exists cmt_commiter_contrib_worker set (pages_per_range = 64,autosummarize = on); +alter index if exists contributor_delete_finder set (pages_per_range = 64,autosummarize = on); +alter index if exists contributor_worker_finder set (pages_per_range = 64,autosummarize = on); +alter index if exists contributor_worker_fullname_finder set (pages_per_range = 64,autosummarize = on); +alter index if exists contributor_worker_email_finder set (pages_per_range = 64,autosummarize = on); + +update "augur_operations"."augur_settings" set value = 56 where setting = 'augur_data_version'; + +COMMIT; diff --git a/schema/generate/55-schema_update_57.sql b/schema/generate/55-schema_update_57.sql new file mode 100644 index 0000000000..607abc866c --- /dev/null +++ b/schema/generate/55-schema_update_57.sql @@ -0,0 +1,119 @@ +BEGIN; + +ALTER TABLE "augur_data"."contributors" ADD COLUMN "gl_id" int8; + +ALTER TABLE "augur_data"."contributors" ADD COLUMN "gl_full_name" varchar COLLATE "pg_catalog"."default"; + +ALTER TABLE "augur_data"."contributors" ADD COLUMN "gl_username" varchar COLLATE "pg_catalog"."default"; + +ALTER TABLE "augur_data"."contributors" ADD COLUMN "gl_state" varchar COLLATE "pg_catalog"."default"; + +ALTER TABLE "augur_data"."contributors" ADD COLUMN "gl_avatar_url" varchar COLLATE "pg_catalog"."default"; + +ALTER TABLE "augur_data"."contributors" ADD COLUMN "gl_web_url" varchar COLLATE "pg_catalog"."default"; + +COMMENT ON COLUMN "augur_data"."contributors"."gl_id" IS '"id" value from these API calls to GitLab, all for the same user + +https://gitlab.com/api/v4/users?username=computationalmystic +https://gitlab.com/api/v4/users?search=s@goggins.com +https://gitlab.com/api/v4/users?search=outdoors@acm.org + +[ + { + "id": 5481034, + "name": "sean goggins", + "username": "computationalmystic", + "state": "active", + "avatar_url": "https://secure.gravatar.com/avatar/fb1fb43953a6059df2fe8d94b21d575c?s=80&d=identicon", + "web_url": "https://gitlab.com/computationalmystic" + } +]'; + +COMMENT ON COLUMN "augur_data"."contributors"."gl_full_name" IS '“name” value from these API calls to GitLab, all for the same user + +https://gitlab.com/api/v4/users?username=computationalmystic +https://gitlab.com/api/v4/users?search=s@goggins.com +https://gitlab.com/api/v4/users?search=outdoors@acm.org + +[ + { + "id": 5481034, + "name": "sean goggins", + "username": "computationalmystic", + "state": "active", + "avatar_url": "https://secure.gravatar.com/avatar/fb1fb43953a6059df2fe8d94b21d575c?s=80&d=identicon", + "web_url": "https://gitlab.com/computationalmystic" + } +]'; + +COMMENT ON COLUMN "augur_data"."contributors"."gl_username" IS '“username” value from these API calls to GitLab, all for the same user + +https://gitlab.com/api/v4/users?username=computationalmystic +https://gitlab.com/api/v4/users?search=s@goggins.com +https://gitlab.com/api/v4/users?search=outdoors@acm.org + +[ + { + "id": 5481034, + "name": "sean goggins", + "username": "computationalmystic", + "state": "active", + "avatar_url": "https://secure.gravatar.com/avatar/fb1fb43953a6059df2fe8d94b21d575c?s=80&d=identicon", + "web_url": "https://gitlab.com/computationalmystic" + } +]'; + +COMMENT ON COLUMN "augur_data"."contributors"."gl_state" IS '“state” value from these API calls to GitLab, all for the same user + +https://gitlab.com/api/v4/users?username=computationalmystic +https://gitlab.com/api/v4/users?search=s@goggins.com +https://gitlab.com/api/v4/users?search=outdoors@acm.org + +[ + { + "id": 5481034, + "name": "sean goggins", + "username": "computationalmystic", + "state": "active", + "avatar_url": "https://secure.gravatar.com/avatar/fb1fb43953a6059df2fe8d94b21d575c?s=80&d=identicon", + "web_url": "https://gitlab.com/computationalmystic" + } +]'; + +COMMENT ON COLUMN "augur_data"."contributors"."gl_avatar_url" IS '“avatar_url” value from these API calls to GitLab, all for the same user + +https://gitlab.com/api/v4/users?username=computationalmystic +https://gitlab.com/api/v4/users?search=s@goggins.com +https://gitlab.com/api/v4/users?search=outdoors@acm.org + +[ + { + "id": 5481034, + "name": "sean goggins", + "username": "computationalmystic", + "state": "active", + "avatar_url": "https://secure.gravatar.com/avatar/fb1fb43953a6059df2fe8d94b21d575c?s=80&d=identicon", + "web_url": "https://gitlab.com/computationalmystic" + } +]'; + +COMMENT ON COLUMN "augur_data"."contributors"."gl_web_url" IS '“web_url” value from these API calls to GitLab, all for the same user + +https://gitlab.com/api/v4/users?username=computationalmystic +https://gitlab.com/api/v4/users?search=s@goggins.com +https://gitlab.com/api/v4/users?search=outdoors@acm.org + +[ + { + "id": 5481034, + "name": "sean goggins", + "username": "computationalmystic", + "state": "active", + "avatar_url": "https://secure.gravatar.com/avatar/fb1fb43953a6059df2fe8d94b21d575c?s=80&d=identicon", + "web_url": "https://gitlab.com/computationalmystic" + } +]'; + +update "augur_operations"."augur_settings" set value = 57 where setting = 'augur_data_version'; + +COMMIT; diff --git a/schema/generate/56-schema_update_58.sql b/schema/generate/56-schema_update_58.sql new file mode 100644 index 0000000000..80aa5ffa11 --- /dev/null +++ b/schema/generate/56-schema_update_58.sql @@ -0,0 +1,38 @@ +BEGIN; + +ALTER TABLE "augur_data"."contributors" + ADD CONSTRAINT "GH-UNIQUE-A" UNIQUE ("cntrb_login") DEFERRABLE INITIALLY DEFERRED, + ADD CONSTRAINT "GH-UNIQUE-B" UNIQUE ("gh_user_id") DEFERRABLE INITIALLY DEFERRED, + ADD CONSTRAINT "GH-UNIQUE-C" UNIQUE ("gh_login") DEFERRABLE INITIALLY DEFERRED; + + +ALTER TABLE IF EXISTS "augur_data"."message" + ADD COLUMN "platform_msg_id" int8, + ADD COLUMN "platform_node_id" varchar; + +ALTER TABLE IF EXISTS "augur_data"."pull_request_review_message_ref" + ADD COLUMN "repo_id" int8; + +ALTER TABLE IF EXISTS "augur_data"."issue_message_ref" + ADD COLUMN "repo_id" int8; + +ALTER TABLE IF EXISTS "augur_data"."pull_request_message_ref" + ADD COLUMN "repo_id" int8; + +ALTER TABLE "augur_data"."issue_message_ref" + DROP CONSTRAINT "fk_issue_message_ref_issues_1"; + +ALTER TABLE "augur_data"."issue_message_ref" + DROP CONSTRAINT "fk_issue_message_ref_message_1"; + +ALTER TABLE "augur_data"."issue_message_ref" + ADD CONSTRAINT "fk_issue_message_ref_issues_1" FOREIGN KEY ("issue_id") REFERENCES "augur_data"."issues" ("issue_id") ON DELETE RESTRICT ON UPDATE CASCADE, + ADD CONSTRAINT "fk_issue_message_ref_message_1" FOREIGN KEY ("msg_id") REFERENCES "augur_data"."message" ("msg_id") ON DELETE RESTRICT ON UPDATE CASCADE; + + + +update "augur_operations"."augur_settings" set value = 58 where setting = 'augur_data_version'; + + +COMMIT; + diff --git a/schema/generate/57-schema_update_59.sql b/schema/generate/57-schema_update_59.sql new file mode 100644 index 0000000000..3e05c7dca7 --- /dev/null +++ b/schema/generate/57-schema_update_59.sql @@ -0,0 +1,10 @@ +BEGIN; + +ALTER TABLE "augur_data"."contributors" + DROP CONSTRAINT "GH-UNIQUE-A"; + +update "augur_operations"."augur_settings" set value = 59 where setting = 'augur_data_version'; + + +COMMIT; + diff --git a/schema/generate/58-schema_update_60.sql b/schema/generate/58-schema_update_60.sql new file mode 100644 index 0000000000..1b8fbb46cf --- /dev/null +++ b/schema/generate/58-schema_update_60.sql @@ -0,0 +1,11 @@ +BEGIN; + +ALTER TABLE "augur_data"."contributors" + ADD CONSTRAINT "GL-UNIQUE-B" UNIQUE ("gl_id"), + ADD CONSTRAINT "GL-UNIQUE-C" UNIQUE ("gl_username"); + +update "augur_operations"."augur_settings" set value = 60 where setting = 'augur_data_version'; + + +COMMIT; + diff --git a/schema/generate/59-schema_update_61.sql b/schema/generate/59-schema_update_61.sql new file mode 100644 index 0000000000..a20a4d9f05 --- /dev/null +++ b/schema/generate/59-schema_update_61.sql @@ -0,0 +1,9 @@ +BEGIN; + +INSERT INTO "augur_operations"."worker_history" ("history_id", "repo_id", "worker", "job_model", "oauth_id", "timestamp", "status", "total_results") VALUES (1, 1, 'seed.worker.record', 'seed', NULL, '2021-07-27 09:50:56', 'Success', 0); + +update "augur_operations"."augur_settings" set value = 61 where setting = 'augur_data_version'; + + +COMMIT; + diff --git a/scripts/docker/install-go.sh b/scripts/docker/install-go.sh new file mode 100755 index 0000000000..41cfc6b2c7 --- /dev/null +++ b/scripts/docker/install-go.sh @@ -0,0 +1,9 @@ +#!/bin/bash +# install Go +installGo() ( + cd "$(mktemp -d)" + wget https://golang.org/dl/go1.16.5.linux-amd64.tar.gz + rm -rf /usr/local/go && tar -C /usr/local -xzf go1.16.5.linux-amd64.tar.gz +) +installGo +export PATH=$PATH:/usr/local/go/bin \ No newline at end of file diff --git a/scripts/install/checks.sh b/scripts/install/checks.sh index 942bcf46b2..800090d3a7 100755 --- a/scripts/install/checks.sh +++ b/scripts/install/checks.sh @@ -58,3 +58,5 @@ fi if [[ ! -d logs ]]; then mkdir logs fi + +command -v go >/dev/null 2>&1 || { echo >&2 "We require 'go' to run Scorecard project to get data, Please install GO first....Aborting"; exit 1; } \ No newline at end of file diff --git a/scripts/install/workers.sh b/scripts/install/workers.sh index 228c8bca88..0031317127 100755 --- a/scripts/install/workers.sh +++ b/scripts/install/workers.sh @@ -42,3 +42,17 @@ do done + +export PATH=$PATH:/usr/local/go/bin + +if [ -d "$HOME/scorecard" ]; then + echo " Scorecard already exists, skipping cloning ..." +else + echo "Cloning OSSF Scorecard to generate scorecard data ..." + git clone https://github.com/ossf/scorecard $HOME/scorecard + CURRENT_DIR=$PWD; + cd $HOME/scorecard; + go build; + echo "scorecard build done" + cd $CURRENT_DIR +fi diff --git a/util/docker/backend/Dockerfile b/util/docker/backend/Dockerfile index 573a1dd1c9..237c0a0e2f 100644 --- a/util/docker/backend/Dockerfile +++ b/util/docker/backend/Dockerfile @@ -12,6 +12,7 @@ RUN set -x \ git \ gcc \ python3-pip \ + wget \ postgresql-client \ && rm -rf /var/lib/apt/lists/* @@ -27,10 +28,13 @@ COPY ./workers/ workers/ COPY ./schema/ schema/ COPY ./util/docker/backend/backend.docker.config.json . + RUN set -x \ - && pip install . \ - && ./scripts/install/workers.sh \ - && augur config init --rc-config-file /augur/backend.docker.config.json \ + && pip install . + +RUN ./scripts/docker/install-go.sh +RUN ./scripts/install/workers.sh +RUN augur config init --rc-config-file /augur/backend.docker.config.json \ && mkdir -p repos/ logs/ COPY ./util/docker/backend/entrypoint.sh / diff --git a/workers/clustering_worker/clustering_worker.py b/workers/clustering_worker/clustering_worker.py index e2ed8c114a..a6397f8966 100644 --- a/workers/clustering_worker/clustering_worker.py +++ b/workers/clustering_worker/clustering_worker.py @@ -1,4 +1,5 @@ import logging, os, sys, time, requests, json +from workers.worker_git_integration import WorkerGitInterfaceable from datetime import datetime from multiprocessing import Process, Queue import pandas as pd @@ -27,7 +28,7 @@ from os import path -class ClusteringWorker(Worker): +class ClusteringWorker(WorkerGitInterfaceable): def __init__(self, config={}): worker_type = "clustering_worker" diff --git a/workers/contributor_breadth_worker/contributor_breadth_worker.py b/workers/contributor_breadth_worker/contributor_breadth_worker.py index 6a4a3b2b56..8105a545e4 100644 --- a/workers/contributor_breadth_worker/contributor_breadth_worker.py +++ b/workers/contributor_breadth_worker/contributor_breadth_worker.py @@ -2,11 +2,18 @@ import logging, os, sys, time, requests, json from datetime import datetime from multiprocessing import Process, Queue +from workers.worker_git_integration import WorkerGitInterfaceable import pandas as pd import sqlalchemy as s from workers.worker_base import Worker -class ContributorBreadthWorker(Worker): +### This worker scans all the platform users in Augur, and pulls their platform activity +### logs. Those are then used to analyze what repos each is working in (which will include repos not +### tracked in the Augur instance.) +### Logic: For each unique platform contributor, gather non duplicate events, using the GitHub "id" +### for the event API (GitLab coming!) + +class ContributorBreadthWorker(WorkerGitInterfaceable): def __init__(self, config={}): @@ -28,14 +35,17 @@ def __init__(self, config={}): # Define data collection info self.tool_source = 'Contributor Breadth Worker' - self.tool_version = '0.0.0' + self.tool_version = '0.0.1' self.data_source = 'GitHub API' # Do any additional configuration after the general initialization has been run self.config.update(config) def contributor_breadth_model(self, task, repo_id): + ## Get all the contributors currently in the database + #!/usr/bin/env python3 + #cntrb_key = gh_login cntrb_login_query = s.sql.text(""" SELECT DISTINCT gh_login, cntrb_id @@ -43,20 +53,26 @@ def contributor_breadth_model(self, task, repo_id): WHERE gh_login IS NOT NULL """) - cntrb_logins = json.loads(pd.read_sql(cntrb_login_query, self.db, \ + current_cntrb_logins = json.loads(pd.read_sql(cntrb_login_query, self.db, \ params={}).to_json(orient="records")) + ## We need a list of all contributors so we can iterate through them to gather events + ## We need a list of event ids to avoid insertion of duplicate events. We ignore the event + ## If it already exists - ### We need this to eliminate duplicates, but is unclear what the most current strategy is ..... + self.logger.info(f"Contributor Logins are: {current_cntrb_logins}") - dup_query = s.sql.text(""" - SELECT DISTINCT event_id - FROM augur_data.contributor_repo - WHERE 1 = 1 - """) + ######################################################## + #### List of existing contributor ids and their corresponding gh_login + #### is contained in the `current_cntrb_logins` variable + ######################################################## - current_ids = json.loads(pd.read_sql(dup_query, self.db, \ - params={}).to_json(orient="records")) + + ######################################################## + #### Define the action map for events to avoid duplicates + #### Query event_ids so a list of existing events are + #### Available for duplicate checking + ######################################################## action_map = { 'insert': { @@ -65,70 +81,98 @@ def contributor_breadth_model(self, task, repo_id): } } - for cntrb in cntrb_logins: + # Eliminate any duplicate event_ids from what will be inserted + # Because of Bulk Insert + # keyVal = event_id - repo_cntrb_url = f"https://api.github.com/users/{cntrb['gh_login']}/events" + ######################################################## + # Query for existing event ids to avoid duplication + ######################################################## + + dup_query = s.sql.text(""" + SELECT DISTINCT event_id + FROM augur_data.contributor_repo + WHERE 1 = 1 + """) - source_cntrb_repos = self.paginate_endpoint(repo_cntrb_url, action_map=action_map, + current_event_ids = json.loads(pd.read_sql(dup_query, self.db, \ + params={}).to_json(orient="records")) + + #Convert list of dictionaries to regular list of 'event_ids'. + #The only values that the sql query returns are event_ids so + #it makes no sense to be a list of many dicts of one key. + current_event_ids = [value for elem in current_event_ids for value in elem.values()] + + self.logger.info(f"current event ids are: {current_event_ids}") + + cntrb_repos_insert = [] + + for cntrb in current_cntrb_logins: + + + repo_cntrb_url = f"https://api.github.com/users/{cntrb['gh_login']}/events" + # source_cntrb_repos seemed like not exactly what the variable is for; its a list of actions for + # each Github gh_login value already in our database + source_cntrb_events = self.paginate_endpoint(repo_cntrb_url, action_map=action_map, table=self.contributor_repo_table) - if len(source_cntrb_repos['all']) == 0: - self.logger.info("There are no issues for this repository.\n") - self.register_task_completion(task, repo_id, 'contributor_breadth') - - # cntrb_repos_insert = [ - # { - # "cntrb_id": cntrb['cntrb_id'], - # "repo_git": cntrb_repo['repo']['url'], - # "tool_source": self.tool_source, - # "tool_version": self.tool_version, - # "data_source": self.data_source, - # "repo_name": cntrb_repo['repo']['name'], - # "gh_repo_id": cntrb_repo['repo']['id'], - # "cntrb_category": cntrb_repo['type'], - # "event_id": cntrb_repo['id'], - # "created_at": cntrb_repo['created_at'] - - # } - # for cntrb_repo in source_cntrb_repos['insert'] - - # ] - - cntrb_repos_insert = [] - #cntrb_ids_idx = pd.Index(cntrb_ids, name=contributors) - - for cntrb_repo in source_cntrb_repos['insert']: - - # repo_it = source_cntrb_repos.index(['id']) - # the_event_id_idx = repo_it.index() - # try: - # the_event_id_idx = source_cntrb_repos(event_id) - # except ValueError: - # continue - #if current_ids['event_id'] == source_cntrb_repos['id']: - #if int(cntrb_repo['id']) in current_ids.loc[~['event_id'].astype.str.isdigit(), 'event_id'].tolist() - # pd.to_numeric(current_ids['event_id']): - #continue - cntrb_repos_insert.append( - { - "cntrb_id": cntrb['cntrb_id'], - "repo_git": cntrb_repo['repo']['url'], - "tool_source": self.tool_source, - "tool_version": self.tool_version, - "data_source": self.data_source, - "repo_name": cntrb_repo['repo']['name'], - "gh_repo_id": cntrb_repo['repo']['id'], - "cntrb_category": cntrb_repo['type'], - "event_id": cntrb_repo['id'], - "created_at": cntrb_repo['created_at'] - }) - - if len(source_cntrb_repos['insert']) > 0: - - - cntrb_repo_insert_result, cntrb_repo_update_result = self.bulk_insert(self.contributor_repo_table, + if len(source_cntrb_events['all']) == 0: + self.logger.info("There are no events, or new events for this user.\n") + continue + else: + ## current_event_ids are the ones ALREADY IN THE AUGUR DB. SKIP THOSE. + ## source_cntrb_events are the ones the API pulls. + for event_id_api in source_cntrb_events['all']: + self.logger.info(f"Keys of event_id_api: {event_id_api.keys()}") + #self.logger.info(f"Keys of current_event_ids: {current_event_ids.keys()}") + if int(event_id_api['id']) in current_event_ids: + continue + else: + #self.register_task_completion(task, repo_id, 'contributor_breadth') + cntrb_repos_insert.append({ + "cntrb_id": cntrb['cntrb_id'], + "repo_git": event_id_api['repo']['url'], + "tool_source": self.tool_source, + "tool_version": self.tool_version, + "data_source": self.data_source, + "repo_name": event_id_api['repo']['name'], + "gh_repo_id": event_id_api['repo']['id'], + "cntrb_category": event_id_api['type'], + "event_id": event_id_api['id'], + "created_at": event_id_api['created_at'] + + }) + + #Use this instead of the bulk insert if that is needed in the future. + # (i.e., if an initial scan uses too much RAM on a large repo.) + """" + self.db.execute(self.contributor_repo_table.insert().values({ + "cntrb_id": cntrb['cntrb_id'], + "repo_git": cntrb_repo['repo']['url'], + "tool_source": self.tool_source, + "tool_version": self.tool_version, + "data_source": self.data_source, + "repo_name": cntrb_repo['repo']['name'], + "gh_repo_id": cntrb_repo['repo']['id'], + "cntrb_category": cntrb_repo['type'], + "event_id": cntrb_repo['id'], + "created_at": cntrb_repo['created_at'] + + }))""" + + # else: + # # Print the message if the value does not exist + # self.logger.info(f"event_id is found in JSON data {current_event_ids[event_id]}.") + + ######################################################## + # Do the Inserts + ######################################################## + + #cntrb_repos_insert = [] + #cntrb_ids_idx = pd.Index(cntrb_ids, name=contributors) + + cntrb_repo_insert_result, cntrb_repo_update_result = self.bulk_insert(self.contributor_repo_table, unique_columns='event_id', insert=cntrb_repos_insert) - - self.register_task_completion(task, None, 'contributor_breadth') + self.register_task_completion(task, '0', 'contributor_breadth') diff --git a/workers/contributor_worker/contributor_worker.py b/workers/contributor_worker/contributor_worker.py index 62109332f1..2cada412ff 100644 --- a/workers/contributor_worker/contributor_worker.py +++ b/workers/contributor_worker/contributor_worker.py @@ -11,8 +11,10 @@ import datetime from workers.worker_base import Worker +## Gitlab email api: https://gitlab.com/api/v4/users?search=s@goggins.com +from workers.worker_git_integration import WorkerGitInterfaceable -class ContributorWorker(Worker): +class ContributorWorker(WorkerGitInterfaceable): """ Worker that detects anomalies on a select few of our metrics task: most recent task the broker added to the worker's queue child: current process of the queue being ran @@ -49,7 +51,7 @@ def contributors_model(self, entry_info, repo_id): # Get and insert all users (emails) found by the facade worker self.insert_facade_contributors(entry_info, repo_id) - # Get and insert all users github considers to be contributors for this repo + # Get and insert all users github considered to be contributors for this repo self.query_github_contributors(entry_info, repo_id) self.logger.info("Searching users for commits from the facade worker for repo with entry info: {}\n".format(entry_info)) @@ -553,33 +555,6 @@ def handle_alias(self, tuple): self.map_new_id(dupe_ids, self.cntrb_id_inc) - ### Commented out due to cascade delete database issue - ### Sean Goggins, February 5, 2021 - - # deleteSQL = """ - # DELETE - # FROM - # contributors c - # USING - # contributors_aliases - # WHERE - # c.cntrb_email = '{0}' - # AND - # c.cntrb_id NOT IN (SELECT cntrb_id FROM contributors_aliases) - # AND - # c.cntrb_id <> {1}; - # """.format(commit_email, self.cntrb_id_inc) - - # try: - # # Delete all dupes - # result = self.db.execute(deleteSQL) - # self.logger.info("Deleted all non-canonical contributors with the email: {}\n".format(commit_email)) - # except Exception as e: - # self.logger.info("When trying to delete a duplicate contributor, worker ran into error: {}".format(e)) - - # else: #then there would be exactly 1 existing tuple, so that id is the one we want - # alias_id = existing_tuples[0]['cntrb_id'] - self.logger.info('Checking canonicals match.\n') alias_sql = s.sql.text(""" SELECT * @@ -704,4 +679,83 @@ def map_new_id(self, dupe_ids, new_id): self.pull_request_repo_table.c.pr_cntrb_id.in_(dupe_ids)).values(pr_repo_col)) self.logger.info("Updated cntrb_id column for tuple in the pull_request_repo table with value: {} replaced with new cntrb id: {}".format(new_id, self.cntrb_id_inc)) + + ## July 12, 2021: Note there are 17 foreign keys for contributors in the Augur database, and ten updates above. Addressing the other 3 of 5 that need to be updated. Specifying 2 to continue to ignore. + ## TODO: Update PR table FK's to RESTRICT on delete and CASCADE on update within PR table ecosystem + ## TODO: Update pull_request_commits and commits FK's to have no cascading effects for now, as thier cntrb_id columns are not currently populated. Instead, these tables rely on emails. + ## Missing Tables: + # pull_request_reviews + # pull_requests + # pull_request_commits + # contributor_repo + # commits + + ## can use update_col when the column name is cntrb_id; otherwise column_name_col for .values(update_col) in row two of each block. + + # column is cntrb_id + pr_reviews_result = self.db.execute(self.pull_request_reviews_table.update().where( + self.pull_request_reviews_table.c.cntrb_id.in_(dupe_ids)).values(update_col)) + self.logger.info("Updated cntrb_id column for tuple in the pull_request_reviews table with value: {} replaced with new cntrb id: {}".format(new_id, self.cntrb_id_inc)) + + # pr_augur_contributor_id + pr_result = self.db.execute(self.pull_requests_table.update().where( + self.pull_requests_table.c.pr_augur_contributor_id.in_(dupe_ids)).values(pr_augur_contributor_id_col)) + self.logger.info("Updated cntrb_id column for tuple in the pull_requests table with value: {} replaced with new cntrb id: {}".format(new_id, self.cntrb_id_inc)) + + # # pr_cmt_author_cntrb_id is not currently populated. Do later + # pr_commits_result = self.db.execute(self.commits_table.update().where( + # self.commits_table.c.cntrb_id.in_(dupe_ids)).values(update_col)) + # self.logger.info("Updated cntrb_id column for tuple in the pull_request_reviewers table with value: {} replaced with new cntrb id: {}".format(new_id, self.cntrb_id_inc)) + + # column is cntrb_id + contributor_repo_result = self.db.execute(self.contributor_repo_table.update().where( + self.contributor_repo_table.c.cntrb_id.in_(dupe_ids)).values(update_col)) + self.logger.info("Updated cntrb_id column for tuple in the contributor_repo table with value: {} replaced with new cntrb id: {}".format(new_id, self.cntrb_id_inc)) + + # # # commits is harder. The cmt_ght_author_id, and cmt_ght_committer_id are all NULL right now. So this will need to be addressed in the future. + # commits_result = self.db.execute(self.pull_request_repo_table.update().where( + # self.pull_request_repo_table.c.pr_cntrb_id.in_(dupe_ids)).values(pr_repo_col)) + # self.logger.info("Updated cntrb_id column for tuple in the pull_request_repo table with value: {} replaced with new cntrb id: {}".format(new_id, self.cntrb_id_inc)) + + # # TABLES not requiring updates + # contributors_history + # contributor_aliases + + + pr_repo_result = self.db.execute(self.pull_request_repo_table.update().where( + self.pull_request_repo_table.c.pr_cntrb_id.in_(dupe_ids)).values(pr_repo_col)) + self.logger.info("Updated cntrb_id column for tuple in the pull_request_repo table with value: {} replaced with new cntrb id: {}".format(new_id, self.cntrb_id_inc)) + + self.logger.info('Done mapping new id.\n') + + + + ### Moved this down to the bottom. This is literally the last thing one would do. + + ### Commented out due to cascade delete database issue + ### Sean Goggins, February 5, 2021 + + # deleteSQL = """ + # DELETE + # FROM + # contributors c + # USING + # contributors_aliases + # WHERE + # c.cntrb_email = '{0}' + # AND + # c.cntrb_id NOT IN (SELECT cntrb_id FROM contributors_aliases) + # AND + # c.cntrb_id <> {1}; + # """.format(commit_email, self.cntrb_id_inc) + + # try: + # # Delete all dupes + # result = self.db.execute(deleteSQL) + # self.logger.info("Deleted all non-canonical contributors with the email: {}\n".format(commit_email)) + # except Exception as e: + # self.logger.info("When trying to delete a duplicate contributor, worker ran into error: {}".format(e)) + + # else: #then there would be exactly 1 existing tuple, so that id is the one we want + # alias_id = existing_tuples[0]['cntrb_id'] \ No newline at end of file diff --git a/workers/deps_worker/deps_worker.py b/workers/deps_worker/deps_worker.py index 9265a95be8..5f9c095f15 100644 --- a/workers/deps_worker/deps_worker.py +++ b/workers/deps_worker/deps_worker.py @@ -2,6 +2,7 @@ import os, subprocess from datetime import datetime import logging +from workers.worker_git_integration import WorkerGitInterfaceable import requests import json from urllib.parse import quote @@ -15,17 +16,17 @@ from workers.deps_worker import dependancy_calculator as dep_calc -class DepsWorker(Worker): +class DepsWorker(WorkerGitInterfaceable): def __init__(self, config={}): worker_type = "deps_worker" # Define what this worker can be given and know how to interpret given = [['git_url']] - models = ['deps'] + models = ['deps', 'ossf_scorecard'] # Define the tables needed to insert, update, or delete on - data_tables = ['repo_dependencies'] + data_tables = ['repo_dependencies', 'repo_deps_scorecard'] operations_tables = ['worker_history', 'worker_job'] @@ -37,7 +38,7 @@ def __init__(self, config={}): }) self.tool_source = 'Deps Worker' - self.tool_version = '1.0.0' + self.tool_version = '2.0.0' self.data_source = 'Augur Repository Data' def deps_model(self, entry_info, repo_id): @@ -62,6 +63,83 @@ def deps_model(self, entry_info, repo_id): self.register_task_completion(entry_info, repo_id, "deps") + def ossf_scorecard_model(self, entry_info, repo_id): + """ Data collection and storage method + """ + self.logger.info('Scorecard Model called...') + self.logger.info(entry_info) + self.logger.info(repo_id) + + repo_path_sql = s.sql.text(""" + SELECT repo_id, repo_git AS path + FROM repo + WHERE repo_id = :repo_id + """) + + scorecard_repo_path = self.db.execute(repo_path_sql, {'repo_id': repo_id}).fetchone()[1] + # absolute_repo_path = self.config['repo_directory'] + relative_repo_path +## TODO: Flesh out generate_scorecard +## You can look at the Value worker to see how Go Programs are already called in Augur. +# + try: + self.generate_scorecard(repo_id, scorecard_repo_path) + except Exception as e: + self.logger.error(e) + + self.register_task_completion(entry_info, repo_id, "deps") + + + def generate_scorecard(self, repo_id, path): + """Runs scorecard on repo and stores data in database + :param repo_id: Repository ID + :param path: URL path of the Repostiory + """ + self.logger.info('Generating scorecard data for repo...') + self.logger.info(f'Repo ID: {repo_id}, Path: {path}') + + # we convert relative path in the format required by scorecard like github.com/chaoss/augur + # raw_path,_ = path.split('-') + # scorecard_repo_path = raw_path[2:] + path = path[8:] + if path[-4:] == '.git': + path = path.replace(".git", "") + command = '--repo='+ path + + #this is path where our scorecard project is located + path_to_scorecard = os.environ['HOME'] + '/scorecard' + + #setting the environmental variable which is required by scorecard + + os.environ['GITHUB_AUTH_TOKEN'] = self.config['gh_api_key'] + + + p= subprocess.run(['./scorecard', command], cwd= path_to_scorecard ,capture_output=True, text=True, timeout=None) + self.logger.info('subprocess completed successfully... ') + output = p.stdout.split('\n') + required_output = output[4:20] + + + + self.logger.info('adding to database...') + + for test in required_output: + temp = test.split() + repo_deps_scorecard = { + 'repo_id': repo_id, + 'name': temp[0], + 'status': temp[1], + 'score': temp[2], + 'tool_source': self.tool_source, + 'tool_version': self.tool_version, + 'data_source': self.data_source, + 'data_collection_date': datetime.now().strftime('%Y-%m-%dT%H:%M:%SZ') + + } + result = self.db.execute(self.repo_deps_scorecard_table.insert().values(repo_deps_scorecard)) + self.logger.info(f"Added OSSF scorecard data : {result.inserted_primary_key}") + + + def generate_deps_data(self, repo_id, path): """Runs scc on repo and stores data in database diff --git a/workers/discourse_analysis_worker/discourse_analysis_worker.py b/workers/discourse_analysis_worker/discourse_analysis_worker.py index 3601b20318..a7c0a93e85 100644 --- a/workers/discourse_analysis_worker/discourse_analysis_worker.py +++ b/workers/discourse_analysis_worker/discourse_analysis_worker.py @@ -1,4 +1,5 @@ import logging, os, sys, time, requests, json +from workers.worker_git_integration import WorkerGitInterfaceable from datetime import datetime from multiprocessing import Process, Queue import pandas as pd @@ -29,7 +30,7 @@ from os import path -class DiscourseAnalysisWorker(Worker): +class DiscourseAnalysisWorker(WorkerGitInterfaceable): def __init__(self, config={}): worker_type = "discourse_analysis_worker" diff --git a/workers/facade_worker/facade_worker/facade01config.py b/workers/facade_worker/facade_worker/facade01config.py index 06f8e831d4..c8e8a2c013 100644 --- a/workers/facade_worker/facade_worker/facade01config.py +++ b/workers/facade_worker/facade_worker/facade01config.py @@ -165,7 +165,7 @@ def database_connection(self, db_host,db_user,db_pass,db_name, db_port, people, cursor = db.cursor()#pymysql.cursors.DictCursor) -## TODO: Does this need a block for if the database connection IS multithreaded? I think so, @gabe-heim +## TODO: Does this need a block for if the database connection IS multithreaded? I think so, @sgoggins if people and not multi_threaded_connection: self.cursor_people = cursor diff --git a/workers/github_worker/github_worker.py b/workers/github_worker/github_worker.py index 632a625002..57a0f7985f 100644 --- a/workers/github_worker/github_worker.py +++ b/workers/github_worker/github_worker.py @@ -1,6 +1,7 @@ #SPDX-License-Identifier: MIT from multiprocessing import Process, Queue from urllib.parse import urlparse +from workers.worker_git_integration import WorkerGitInterfaceable import pandas as pd import sqlalchemy as s import requests @@ -8,11 +9,12 @@ import logging import json import os +import psycopg2 #really only to catch type errors for database methods import math from datetime import datetime from workers.worker_base import Worker -class GitHubWorker(Worker): +class GitHubWorker(WorkerGitInterfaceable): """ Worker that collects data from the Github API and stores it in our database task: most recent task the broker added to the worker's queue child: current process of the queue being ran @@ -46,6 +48,9 @@ def __init__(self, config={}): self.process_count = 1 self.deep_collection = True + #Needs to be an attribute of the class for incremental database insert using paginate_endpoint + self.pk_source_issues = [] + # Run the general worker initialization super().__init__(worker_type, config, given, models, data_tables, operations_tables) @@ -67,95 +72,110 @@ def _get_pk_source_issues(self): } } - source_issues = self.new_paginate_endpoint( - issues_url, action_map=action_map, - table=self.issues_table, where_clause=self.issues_table.c.repo_id == self.repo_id - ) - - if len(source_issues['all']) == 0: - self.logger.info("There are no issues for this repository.\n") - self.register_task_completion(self.task_info, self.repo_id, 'issues') - return False - - def is_valid_pr_block(issue): - return ( - 'pull_request' in issue and issue['pull_request'] - and isinstance(issue['pull_request'], dict) and 'url' in issue['pull_request'] - ) - - source_issues['insert'] = self.enrich_cntrb_id( - source_issues['insert'], 'user.login', action_map_additions={ - 'insert': { - 'source': ['user.node_id'], - 'augur': ['gh_node_id'] - } - }, prefix='user.' - ) - - issues_insert = [ - { - 'repo_id': self.repo_id, - 'reporter_id': issue['cntrb_id'], - 'pull_request': ( - issue['pull_request']['url'].split('/')[-1] - if is_valid_pr_block(issue) else None - ), - 'pull_request_id': ( - issue['pull_request']['url'].split('/')[-1] - if is_valid_pr_block(issue) else None - ), - 'created_at': issue['created_at'], - 'issue_title': issue['title'], - 'issue_body': issue['body'].replace('0x00', '____') if issue['body'] else None, - 'comment_count': issue['comments'], - 'updated_at': issue['updated_at'], - 'closed_at': issue['closed_at'], - 'repository_url': issue['repository_url'], - 'issue_url': issue['url'], - 'labels_url': issue['labels_url'], - 'comments_url': issue['comments_url'], - 'events_url': issue['events_url'], - 'html_url': issue['html_url'], - 'issue_state': issue['state'], - 'issue_node_id': issue['node_id'], - 'gh_issue_id': issue['id'], - 'gh_issue_number': issue['number'], - 'gh_user_id': issue['user']['id'], - 'tool_source': self.tool_source, - 'tool_version': self.tool_version, - 'data_source': self.data_source - } for issue in source_issues['insert'] - ] + def pk_source_issues_increment_insert(inc_source_issues,action_map): + if len(inc_source_issues['all']) == 0: + self.logger.info("There are no issues for this repository.\n") + self.register_task_completion(self.task_info, self.repo_id, 'issues') + return False + + def is_valid_pr_block(issue): + return ( + 'pull_request' in issue and issue['pull_request'] + and isinstance(issue['pull_request'], dict) and 'url' in issue['pull_request'] + ) + + #This is sending empty data to enrich_cntrb_id, fix with check. + #The problem happens when ['insert'] is empty but ['all'] is not. + if len(inc_source_issues['insert']) > 0: + inc_source_issues['insert'] = self.enrich_cntrb_id( + inc_source_issues['insert'], 'user.login', action_map_additions={ + 'insert': { + 'source': ['user.node_id'], + 'augur': ['gh_node_id'] + } + }, prefix='user.' + ) + else: + self.logger.info("Contributor enrichment is not needed, no inserts in action map.") + + issues_insert = [ + { + 'repo_id': self.repo_id, + 'reporter_id': issue['cntrb_id'], + 'pull_request': ( + issue['pull_request']['url'].split('/')[-1] + if is_valid_pr_block(issue) else None + ), + 'pull_request_id': ( + issue['pull_request']['url'].split('/')[-1] + if is_valid_pr_block(issue) else None + ), + 'created_at': issue['created_at'], + 'issue_title': issue['title'], + 'issue_body': issue['body'].replace('0x00', '____') if issue['body'] else None, + 'comment_count': issue['comments'], + 'updated_at': issue['updated_at'], + 'closed_at': issue['closed_at'], + 'repository_url': issue['repository_url'], + 'issue_url': issue['url'], + 'labels_url': issue['labels_url'], + 'comments_url': issue['comments_url'], + 'events_url': issue['events_url'], + 'html_url': issue['html_url'], + 'issue_state': issue['state'], + 'issue_node_id': issue['node_id'], + 'gh_issue_id': issue['id'], + 'gh_issue_number': issue['number'], + 'gh_user_id': issue['user']['id'], + 'tool_source': self.tool_source, + 'tool_version': self.tool_version, + 'data_source': self.data_source + } for issue in inc_source_issues['insert'] + ] - if len(source_issues['insert']) > 0 or len(source_issues['update']) > 0: + if len(inc_source_issues['insert']) > 0 or len(inc_source_issues['update']) > 0: + issues_insert_result, issues_update_result = self.bulk_insert( + self.issues_table, update=inc_source_issues['update'], + unique_columns=action_map['insert']['augur'], + insert=issues_insert, update_columns=action_map['update']['augur'] + ) - issues_insert_result, issues_update_result = self.bulk_insert( - self.issues_table, update=source_issues['update'], - unique_columns=action_map['insert']['augur'], - insert=issues_insert, update_columns=action_map['update']['augur'] + source_data = inc_source_issues['insert'] + inc_source_issues['update'] + + elif not self.deep_collection: + self.logger.info( + "There are not issues to update, insert, or collect nested information for.\n" + ) + #This might cause problems if staggered. + #self.register_task_completion(entry_info, self.repo_id, 'issues') + return + + if self.deep_collection: + source_data = inc_source_issues['all'] + + gh_merge_fields = ['id'] + augur_merge_fields = ['gh_issue_id'] + + self.pk_source_issues += self.enrich_data_primary_keys( + source_data, self.issues_table, gh_merge_fields, augur_merge_fields ) - source_data = source_issues['insert'] + source_issues['update'] - - elif not self.deep_collection: - self.logger.info( - "There are not issues to update, insert, or collect nested information for.\n" - ) - self.register_task_completion(entry_info, self.repo_id, 'issues') return - if self.deep_collection: - source_data = source_issues['all'] - - # Merge source data to inserted data to have access to inserted primary keys - - gh_merge_fields = ['id'] - augur_merge_fields = ['gh_issue_id'] - - pk_source_issues = self.enrich_data_primary_keys( - source_data, self.issues_table, gh_merge_fields, augur_merge_fields + source_issues = self.paginate_endpoint( + issues_url, action_map=action_map, + table=self.issues_table, where_clause=self.issues_table.c.repo_id == self.repo_id, + stagger=True,insertion_method=pk_source_issues_increment_insert ) + #Use the increment insert method in order to do the + #remaining pages of the paginated endpoint that weren't inserted inside the paginate_endpoint method + #empty data is checked for in the method so it's not needed outside of it. + pk_source_issues_increment_insert(source_issues,action_map) + + pk_source_issues = self.pk_source_issues + self.pk_source_issues = [] + return pk_source_issues def issues_model(self, entry_info, repo_id): @@ -171,15 +191,24 @@ def issues_model(self, entry_info, repo_id): pk_source_issues = self._get_pk_source_issues() if pk_source_issues: - self.issue_comments_model(pk_source_issues) - issue_events_all = self.issue_events_model(pk_source_issues) - self.issue_nested_data_model(pk_source_issues, issue_events_all) + try: + self.issue_comments_model(pk_source_issues) + except Exception as e: + self.logger.info(f"issue comments model failed on {e}.") + try: + issue_events_all = self.issue_events_model(pk_source_issues) + except Exception as e: + self.logger.info(f"issue events model failed on {e}") + try: + self.issue_nested_data_model(pk_source_issues, issue_events_all) + except Exception as e: + self.logger.info("issue nested model failed on {e}.") # Register this task as completed self.register_task_completion(entry_info, self.repo_id, 'issues') def issue_comments_model(self, pk_source_issues): - + # https://api.github.com/repos/chaoss/augur/issues/comments comments_url = ( f"https://api.github.com/repos/{self.owner}/{self.repo}" "/issues/comments?per_page=100&page={}" @@ -195,8 +224,67 @@ def issue_comments_model(self, pk_source_issues): } } + def issue_comments_insert(inc_issue_comments, comment_action_map): + + inc_issue_comments['insert'] = self.text_clean(inc_issue_comments['insert'], 'body') + + #This is sending empty data to enrich_cntrb_id, fix with check + if len(inc_issue_comments['insert']) > 0: + inc_issue_comments['insert'] = self.enrich_cntrb_id( + inc_issue_comments['insert'], 'user.login', action_map_additions={ + 'insert': { + 'source': ['user.node_id'], + 'augur': ['gh_node_id'] + } + }, prefix='user.' + ) + else: + self.logger.info("Contributor enrichment is not needed, no inserts in action map.") + + issue_comments_insert = [ + { + 'pltfrm_id': self.platform_id, + 'msg_text': comment['body'], + 'msg_timestamp': comment['created_at'], + 'cntrb_id': comment['cntrb_id'], + 'tool_source': self.tool_source, + 'tool_version': self.tool_version, + 'data_source': self.data_source + } for comment in inc_issue_comments['insert'] + ] + + self.bulk_insert(self.message_table, insert=issue_comments_insert, + unique_columns=comment_action_map['insert']['augur']) + + """ ISSUE MESSAGE REF TABLE """ + + c_pk_source_comments = self.enrich_data_primary_keys( + inc_issue_comments['insert'], self.message_table, + comment_action_map['insert']['source'], comment_action_map['insert']['augur'] + ) + both_pk_source_comments = self.enrich_data_primary_keys( + c_pk_source_comments, self.issues_table, ['issue_url'], ['issue_url'] + ) + + issue_message_ref_insert = [ + { + 'issue_id': comment['issue_id'], + 'msg_id': comment['msg_id'], + 'tool_source': self.tool_source, + 'tool_version': self.tool_version, + 'data_source': self.data_source, + 'issue_msg_ref_src_comment_id': comment['id'], + 'issue_msg_ref_src_node_id': comment['node_id'] + } for comment in both_pk_source_comments + ] + + self.bulk_insert( + self.issue_message_ref_table, insert=issue_message_ref_insert, + unique_columns=['issue_msg_ref_src_comment_id'] + ) + # list to hold contributors needing insertion or update - issue_comments = self.new_paginate_endpoint( + issue_comments = self.paginate_endpoint( comments_url, action_map=comment_action_map, table=self.message_table, where_clause=self.message_table.c.msg_id.in_( [ @@ -210,59 +298,14 @@ def issue_comments_model(self, pk_source_issues): ) ).fetchall() ] - ) - ) - - issue_comments['insert'] = self.enrich_cntrb_id( - issue_comments['insert'], 'user.login', action_map_additions={ - 'insert': { - 'source': ['user.node_id'], - 'augur': ['gh_node_id'] - } - }, prefix='user.' + ), + stagger=True, + insertion_method=issue_comments_insert ) - issue_comments_insert = [ - { - 'pltfrm_id': self.platform_id, - 'msg_text': comment['body'], - 'msg_timestamp': comment['created_at'], - 'cntrb_id': comment['cntrb_id'], - 'tool_source': self.tool_source, - 'tool_version': self.tool_version, - 'data_source': self.data_source - } for comment in issue_comments['insert'] - ] - - self.bulk_insert(self.message_table, insert=issue_comments_insert, - unique_columns=comment_action_map['insert']['augur']) - - """ ISSUE MESSAGE REF TABLE """ - - c_pk_source_comments = self.enrich_data_primary_keys( - issue_comments['insert'], self.message_table, - comment_action_map['insert']['source'], comment_action_map['insert']['augur'] - ) - both_pk_source_comments = self.enrich_data_primary_keys( - c_pk_source_comments, self.issues_table, ['issue_url'], ['issue_url'] - ) - - issue_message_ref_insert = [ - { - 'issue_id': comment['issue_id'], - 'msg_id': comment['msg_id'], - 'tool_source': self.tool_source, - 'tool_version': self.tool_version, - 'data_source': self.data_source, - 'issue_msg_ref_src_comment_id': comment['id'], - 'issue_msg_ref_src_node_id': comment['node_id'] - } for comment in both_pk_source_comments - ] - self.bulk_insert( - self.issue_message_ref_table, insert=issue_message_ref_insert, - unique_columns=['issue_msg_ref_src_comment_id'] - ) + issue_comments_insert(issue_comments,comment_action_map) + return def issue_events_model(self, pk_source_issues): @@ -302,15 +345,19 @@ def issue_events_model(self, pk_source_issues): ['id', 'issue_id', 'node_id', 'url', 'actor', 'created_at', 'event', 'commit_id'] ].to_dict(orient='records') - pk_issue_events = self.enrich_cntrb_id( - pk_issue_events, 'actor.login', action_map_additions={ - 'insert': { - 'source': ['actor.node_id'], - 'augur': ['gh_node_id'] - } - }, prefix='actor.' - ) - + #This is sending empty data to enrich_cntrb_id, fix with check + if len(pk_issue_events) > 0: + pk_issue_events = self.enrich_cntrb_id( + pk_issue_events, 'actor.login', action_map_additions={ + 'insert': { + 'source': ['actor.node_id'], + 'augur': ['gh_node_id'] + } + }, prefix='actor.' + ) + else: + self.logger.info("Contributor enrichment is not needed, no inserts in action map.") + issue_events_insert = [ { 'issue_event_src_id': event['id'], @@ -405,8 +452,8 @@ def is_nan(value): continue closed_issue_updates.append({ - 'b_issue_id': issue['issue_id'], - 'cntrb_id': closed_event['cntrb_id'] + 'b_issue_id'.item(): issue['issue_id'], + 'cntrb_id'.item(): closed_event['cntrb_id'] }) # Closed issues, update with closer id @@ -422,20 +469,26 @@ def is_nan(value): 'augur': ['issue_assignee_src_id'] } } + + table_values_issue_assignees = self.db.execute( + s.sql.select(self.get_relevant_columns(self.issue_assignees_table,assignee_action_map)) + ).fetchall() - source_assignees_insert, _ = self.new_organize_needed_data( - assignees_all, augur_table=self.issue_assignees_table, + source_assignees_insert, _ = self.organize_needed_data( + assignees_all, table_values=table_values_issue_assignees, action_map=assignee_action_map ) - - source_assignees_insert = self.enrich_cntrb_id( - source_assignees_insert, 'login', action_map_additions={ - 'insert': { - 'source': ['node_id'], - 'augur': ['gh_node_id'] + if len(source_assignees_insert) > 0: + source_assignees_insert = self.enrich_cntrb_id( + source_assignees_insert, 'login', action_map_additions={ + 'insert': { + 'source': ['node_id'], + 'augur': ['gh_node_id'] + } } - } - ) + ) + else: + self.logger.info("Contributor enrichment is not needed, no inserts in action map.") assignees_insert = [ { @@ -460,8 +513,14 @@ def is_nan(value): 'augur': ['label_src_id'] } } - source_labels_insert, _ = self.new_organize_needed_data( - labels_all, augur_table=self.issue_labels_table, + + table_values_issue_labels = self.db.execute( + s.sql.select(self.get_relevant_columns(self.issue_labels_table,label_action_map)) + ).fetchall() + + + source_labels_insert, _ = self.organize_needed_data( + labels_all, table_values=table_values_issue_labels, action_map=label_action_map ) labels_insert = [ @@ -477,7 +536,18 @@ def is_nan(value): 'label_src_node_id': label['node_id'] } for label in source_labels_insert ] - self.bulk_insert( - self.issue_labels_table, insert=labels_insert, - unique_columns=label_action_map['insert']['augur'] - ) + + #Trying to fix an error with creating bigInts using pandas + try: + self.bulk_insert( + self.issue_labels_table, insert=labels_insert, + unique_columns=label_action_map['insert']['augur'] + ) + except psycopg2.errors.InvalidTextRepresentation as e: + #If there was an error constructing a type try to redo the insert with a conversion. + self.logger.warning(f"Type error when attempting to insert data in issue_nested_data_model with the github worker. Trying again with type conversion on. ERROR: {e} \n") + self.bulk_insert( + self.issue_labels_table, insert=labels_insert, + unique_columns=label_action_map['insert']['augur'], + convert_float_int=True + ) diff --git a/workers/gitlab_issues_worker/gitlab_issues_worker.py b/workers/gitlab_issues_worker/gitlab_issues_worker.py index 37d394d51f..40444b9b79 100644 --- a/workers/gitlab_issues_worker/gitlab_issues_worker.py +++ b/workers/gitlab_issues_worker/gitlab_issues_worker.py @@ -1,5 +1,6 @@ #SPDX-License-Identifier: MIT import logging, os, sys, time, requests, json +from workers.worker_git_integration import WorkerGitInterfaceable from datetime import datetime from multiprocessing import Process, Queue import pandas as pd @@ -8,7 +9,7 @@ from urllib.parse import urlparse, quote -class GitLabIssuesWorker(Worker): +class GitLabIssuesWorker(WorkerGitInterfaceable): def __init__(self, config={}): worker_type = "gitlab_issues_worker" diff --git a/workers/gitlab_merge_request_worker/gitlab_merge_request_worker.py b/workers/gitlab_merge_request_worker/gitlab_merge_request_worker.py index ae26b3746b..da291ff820 100644 --- a/workers/gitlab_merge_request_worker/gitlab_merge_request_worker.py +++ b/workers/gitlab_merge_request_worker/gitlab_merge_request_worker.py @@ -1,4 +1,5 @@ import logging, os, sys, time, requests, json +from workers.worker_git_integration import WorkerGitInterfaceable from datetime import datetime from multiprocessing import Process, Queue import pandas as pd @@ -7,7 +8,7 @@ from urllib.parse import urlparse, quote -class GitlabMergeRequestWorker(Worker): +class GitlabMergeRequestWorker(WorkerGitInterfaceable): def __init__(self, config={}): # Define what this worker can be given and know how to interpret diff --git a/workers/insight_worker/insight_worker.py b/workers/insight_worker/insight_worker.py index f0699a493b..cfdafc0a2a 100644 --- a/workers/insight_worker/insight_worker.py +++ b/workers/insight_worker/insight_worker.py @@ -1,6 +1,7 @@ #SPDX-License-Identifier: MIT from multiprocessing import Process, Queue from urllib.parse import urlparse +from workers.worker_git_integration import WorkerGitInterfaceable import requests, sys import pandas as pd import sqlalchemy as s @@ -15,7 +16,7 @@ import warnings warnings.filterwarnings('ignore') -class InsightWorker(Worker): +class InsightWorker(WorkerGitInterfaceable): """ Worker that detects anomalies on a select few of our metrics task: most recent task the broker added to the worker's queue child: current process of the queue being ran diff --git a/workers/linux_badge_worker/linux_badge_worker.py b/workers/linux_badge_worker/linux_badge_worker.py index fd8731c3d4..0e77cf3511 100644 --- a/workers/linux_badge_worker/linux_badge_worker.py +++ b/workers/linux_badge_worker/linux_badge_worker.py @@ -2,6 +2,7 @@ import os from datetime import datetime import logging +from workers.worker_git_integration import WorkerGitInterfaceable import requests import json from urllib.parse import quote @@ -13,7 +14,7 @@ from sqlalchemy import MetaData from workers.worker_base import Worker -class LinuxBadgeWorker(Worker): +class LinuxBadgeWorker(WorkerGitInterfaceable): """ Worker that collects repo badging data from CII config: database credentials, broker information, and ID """ diff --git a/workers/message_insights_worker/message_insights_worker.py b/workers/message_insights_worker/message_insights_worker.py index 20f86c7246..cc844d12f7 100644 --- a/workers/message_insights_worker/message_insights_worker.py +++ b/workers/message_insights_worker/message_insights_worker.py @@ -5,6 +5,7 @@ import sys import warnings from multiprocessing import Process, Queue +from workers.worker_git_integration import WorkerGitInterfaceable import numpy as np import pandas as pd @@ -20,7 +21,7 @@ warnings.filterwarnings('ignore') -class MessageInsightsWorker(Worker): +class MessageInsightsWorker(WorkerGitInterfaceable): def __init__(self, config={}): # Define the worker's type, which will be used for self identification. diff --git a/workers/pull_request_analysis_worker/pull_request_analysis_worker.py b/workers/pull_request_analysis_worker/pull_request_analysis_worker.py index 999625915d..6f60026dd8 100644 --- a/workers/pull_request_analysis_worker/pull_request_analysis_worker.py +++ b/workers/pull_request_analysis_worker/pull_request_analysis_worker.py @@ -5,6 +5,7 @@ import time import datetime from multiprocessing import Process, Queue +from workers.worker_git_integration import WorkerGitInterfaceable import joblib import numpy as np @@ -22,7 +23,7 @@ from augur import ROOT_AUGUR_DIRECTORY from augur.config import AugurConfig -class PullRequestAnalysisWorker(Worker): +class PullRequestAnalysisWorker(WorkerGitInterfaceable): def __init__(self, config={}): # Define the worker's type, which will be used for self identification. diff --git a/workers/pull_request_worker/pull_request_worker.py b/workers/pull_request_worker/pull_request_worker.py index 5c419ab5f4..241da6a098 100644 --- a/workers/pull_request_worker/pull_request_worker.py +++ b/workers/pull_request_worker/pull_request_worker.py @@ -7,6 +7,8 @@ import sys import time import traceback +from workers.worker_git_integration import WorkerGitInterfaceable +from numpy.lib.utils import source import requests import copy from datetime import datetime @@ -16,7 +18,7 @@ from sqlalchemy.sql.expression import bindparam from workers.worker_base import Worker -class GitHubPullRequestWorker(Worker): +class GitHubPullRequestWorker(WorkerGitInterfaceable): """ Worker that collects Pull Request related data from the Github API and stores it in our database. @@ -51,6 +53,9 @@ def __init__(self, config={}): self.tool_version = '1.0.0' self.data_source = 'GitHub API' + #Needs to be an attribute of the class for incremental database insert using paginate_endpoint + self.pk_source_prs = [] + def graphql_paginate(self, query, data_subjects, before_parameters=None): """ Paginate a GitHub GraphQL query backwards @@ -80,7 +85,7 @@ def all_items(dictionary): tuples = [] def find_root_of_subject(data, key_subject): - self.logger.info(f'Finding {key_subject} root of {data}') + # self.logger.info(f'Finding {key_subject} root of {data}') key_nest = None for subject, nest in data.items(): if key_subject in nest: @@ -94,8 +99,8 @@ def find_root_of_subject(data, key_subject): for data_subject, nest in data_subjects.items(): - self.logger.info(f'Beginning paginate process for field {data_subject} ' - f'for query: {query}') + # self.logger.info(f'Beginning paginate process for field {data_subject} ' + # f'for query: {query}') page_count = 0 while has_previous_page: @@ -124,7 +129,7 @@ def find_root_of_subject(data, key_subject): if data['errors'][0]['type'] == 'NOT_FOUND': self.logger.warning( "Github repo was not found or does not exist for " - f"endpoint: {url}\n" + f"endpoint: {base_url}\n" ) break if data['errors'][0]['type'] == 'RATE_LIMITED': @@ -236,9 +241,9 @@ def pull_request_files_model(self, task_info, repo_id): WHERE pull_request_files.pull_request_id = pull_requests.pull_request_id AND repo_id = :repo_id """) - self.logger.info( - f'Getting table values with the following PSQL query: \n{table_values_sql}\n' - ) + # self.logger.info( + # f'Getting table values with the following PSQL query: \n{table_values_sql}\n' + # ) table_values = pd.read_sql(table_values_sql, self.db, params={'repo_id': self.repo_id}) # Compare queried values against table values for dupes/updates @@ -341,6 +346,7 @@ def pull_request_commits_model(self, task_info, repo_id): update_col_map = {} # Use helper paginate function to iterate the commits url and check for dupes + #TODO: figure out why dupes sometimes still happen.q pr_commits = self.paginate( commits_url, duplicate_col_map, update_col_map, table, table_pkey, where_clause="where pull_request_id = {}".format(pull_request.pull_request_id) @@ -369,11 +375,13 @@ def pull_request_commits_model(self, task_info, repo_id): def _get_pk_source_prs(self): + #self.owner and self.repo are both defined in the worker base's collect method using the url of the github repo. pr_url = ( f"https://api.github.com/repos/{self.owner}/{self.repo}/pulls?state=all&" "direction=asc&per_page=100&page={}" ) + #Database action map is essential in order to avoid duplicates messing up the data pr_action_map = { 'insert': { 'source': ['id'], @@ -385,28 +393,37 @@ def _get_pk_source_prs(self): } } - source_prs = self.new_paginate_endpoint( - pr_url, action_map=pr_action_map, table=self.pull_requests_table, - where_clause=self.pull_requests_table.c.repo_id == self.repo_id - ) + #Use a parent method in order to iterate through pull request pages + #Define a method to pass paginate_endpoint so that prs can be inserted incrementally - self.write_debug_data(source_prs, 'source_prs') + def pk_source_increment_insert(inc_source_prs, action_map): + + self.write_debug_data(inc_source_prs, 'source_prs') + + if len(inc_source_prs['all']) == 0: + self.logger.info("There are no prs for this repository.\n") + self.register_task_completion(self.task_info, self.repo_id, 'pull_requests') + return + + + #self.logger.info(f"inc_source_prs is: {inc_source_prs} and the action map is {action_map}...") + + #This is sending empty data to enrich_cntrb_id, fix with check + if len(inc_source_prs['insert']) > 0: + inc_source_prs['insert'] = self.enrich_cntrb_id( + inc_source_prs['insert'], 'user.login', action_map_additions={ + 'insert': { + 'source': ['user.node_id'], + 'augur': ['gh_node_id'] + } + }, prefix='user.' + ) + else: + self.logger.info("Contributor enrichment is not needed, no inserts in action map.") - if len(source_prs['all']) == 0: - self.logger.info("There are no prs for this repository.\n") - self.register_task_completion(self.task_info, self.repo_id, 'pull_requests') - return - source_prs['insert'] = self.enrich_cntrb_id( - source_prs['insert'], 'user.login', action_map_additions={ - 'insert': { - 'source': ['user.node_id'], - 'augur': ['gh_node_id'] - } - }, prefix='user.' - ) - prs_insert = [ + prs_insert = [ { 'repo_id': self.repo_id, 'pr_url': pr['url'], @@ -448,35 +465,65 @@ def _get_pk_source_prs(self): 'tool_source': self.tool_source, 'tool_version': self.tool_version, 'data_source': 'GitHub API' - } for pr in source_prs['insert'] - ] + } for pr in inc_source_prs['insert'] + ] - if len(source_prs['insert']) > 0 or len(source_prs['update']) > 0: - pr_insert_result, pr_update_result = self.bulk_insert( - self.pull_requests_table, - update=source_prs['update'], unique_columns=pr_action_map['insert']['augur'], - insert=prs_insert, update_columns=pr_action_map['update']['augur'] - ) + #The b_pr_src_id bug comes from here + if len(inc_source_prs['insert']) > 0 or len(inc_source_prs['update']) > 0: + self.bulk_insert( + self.pull_requests_table, + update=inc_source_prs['update'], unique_columns=action_map['insert']['augur'], + insert=prs_insert, update_columns=action_map['update']['augur'] + ) - source_data = source_prs['insert'] + source_prs['update'] + source_data = inc_source_prs['insert'] + inc_source_prs['update'] - elif not self.deep_collection: - self.logger.info( - "There are no prs to update, insert, or collect nested information for.\n" - ) - self.register_task_completion(self.task_info, self.repo_id, 'pull_requests') + elif not self.deep_collection: + self.logger.info( + "There are no prs to update, insert, or collect nested information for.\n" + ) + self.register_task_completion(self.task_info, self.repo_id, 'pull_requests') + return + + if self.deep_collection: + source_data = inc_source_prs['all'] + + # Merge source data to inserted data to have access to inserted primary keys + + gh_merge_fields = ['id'] + augur_merge_fields = ['pr_src_id'] + + self.pk_source_prs += self.enrich_data_primary_keys(source_data, self.pull_requests_table, + gh_merge_fields, augur_merge_fields) return - if self.deep_collection: - source_data = source_prs['all'] - # Merge source data to inserted data to have access to inserted primary keys + #paginate endpoint with stagger enabled so that the above method can insert every 500 - gh_merge_fields = ['id'] - augur_merge_fields = ['pr_src_id'] + # self.logger.info( + # f"PR Action map is {pr_action_map}" + # ) + + source_prs = self.paginate_endpoint( + pr_url, action_map=pr_action_map, table=self.pull_requests_table, + where_clause=self.pull_requests_table.c.repo_id == self.repo_id, + stagger=True, + insertion_method=pk_source_increment_insert + ) + + # self.logger.info( + # f"PR Action map is {pr_action_map} after source_prs. The source_prs are {source_prs}." + # ) - pk_source_prs = self.enrich_data_primary_keys(source_data, self.pull_requests_table, - gh_merge_fields, augur_merge_fields) + #Use the increment insert method in order to do the + #remaining pages of the paginated endpoint that weren't inserted inside the paginate_endpoint method + pk_source_increment_insert(source_prs,pr_action_map) + + pk_source_prs = self.pk_source_prs + + #This attribute is only needed because paginate endpoint needs to + #send this data to the child class and this is the easiset way to do that. + self.pk_source_prs = [] return pk_source_prs @@ -494,15 +541,30 @@ def pull_requests_model(self, entry_info, repo_id): self.logger.info("Beginning collection of Pull Requests...\n") self.logger.info(f"Repo ID: {self.repo_id}, Git URL: {github_url}\n") - pk_source_prs = self._get_pk_source_prs() + try: + pk_source_prs = self._get_pk_source_prs() + except Exception as e: + self.logger(f"Pull Requests model failed with {e}.") self.write_debug_data(pk_source_prs, 'pk_source_prs') if pk_source_prs: - self.pull_request_comments_model() - self.pull_request_events_model(pk_source_prs) - self.pull_request_reviews_model(pk_source_prs) - self.pull_request_nested_data_model(pk_source_prs) + try: + self.pull_request_comments_model() + except Exception as e: + self.logger(f"Comments model failed with {e}.") + try: + self.pull_request_events_model(pk_source_prs) + except Exception as e: + self.logger(f"PR Events model failed with {e}.") + try: + self.pull_request_reviews_model(pk_source_prs) + except Exception as e: + self.logger(f"PR Reviews model failed with {e}.") + try: + self.pull_request_nested_data_model(pk_source_prs) + except Exception as e: + self.logger(f"PR Nested Data model failed with {e}.") self.register_task_completion(self.task_info, self.repo_id, 'pull_requests') @@ -513,6 +575,12 @@ def pull_request_comments_model(self): "&page={}" ) + # We should be capturing the following additional data here: + # 1. The Platform message ID : Most efficient way to dup check + # 2. The plaform issue ID and/or PR ID so queries are easier + # 3. The REPO_ID so queries are easier. + ## ALL THIS INFO IS IN THE PLATFOMR JSON AND WE ARe ignoring IT. + comment_action_map = { 'insert': { 'source': ['created_at', 'body'], @@ -528,15 +596,18 @@ def pull_request_comments_model(self): self.write_debug_data(pr_comments, 'pr_comments') pr_comments['insert'] = self.text_clean(pr_comments['insert'], 'body') - - pr_comments['insert'] = self.enrich_cntrb_id( - pr_comments['insert'], 'user.login', action_map_additions={ - 'insert': { - 'source': ['user.node_id'], - 'augur': ['gh_node_id'] - } - }, prefix='user.' - ) + #This is sending empty data to enrich_cntrb_id, fix with check + if len(pr_comments['insert']) > 0: + pr_comments['insert'] = self.enrich_cntrb_id( + pr_comments['insert'], 'user.login', action_map_additions={ + 'insert': { + 'source': ['user.node_id'], + 'augur': ['gh_node_id'] + } + }, prefix='user.' + ) + else: + self.logger.info("Contributor enrichment is not needed, no inserts in action map.") pr_comments_insert = [ { @@ -613,14 +684,17 @@ def pull_request_events_model(self, pk_source_prs=[]): self.write_debug_data(pk_pr_events, 'pk_pr_events') - pk_pr_events = self.enrich_cntrb_id( - pk_pr_events, 'actor.login', action_map_additions={ - 'insert': { - 'source': ['actor.node_id'], - 'augur': ['gh_node_id'] - } - }, prefix='actor.' - ) + if len(pk_pr_events) > 0: + pk_pr_events = self.enrich_cntrb_id( + pk_pr_events, 'actor.login', action_map_additions={ + 'insert': { + 'source': ['actor.node_id'], + 'augur': ['gh_node_id'] + } + }, prefix='actor.' + ) + else: + self.logger.info("Contributor enrichment is not needed, no data provided.") pr_events_insert = [ { @@ -671,24 +745,28 @@ def pull_request_reviews_model(self, pk_source_prs=[]): self.pull_request_reviews_table, review_action_map ) + #I don't know what else this could be used for so I'm using it for the function call table_values = self.db.execute(s.sql.select(cols_to_query).where( self.pull_request_reviews_table.c.pull_request_id.in_( set(pd.DataFrame(pk_source_prs)['pull_request_id']) ))).fetchall() - source_reviews_insert, source_reviews_update = self.new_organize_needed_data( - pr_pk_source_reviews, augur_table=self.pull_request_reviews_table, + source_reviews_insert, source_reviews_update = self.organize_needed_data( + pr_pk_source_reviews, table_values=table_values, action_map=review_action_map ) - source_reviews_insert = self.enrich_cntrb_id( - source_reviews_insert, 'user.login', action_map_additions={ - 'insert': { - 'source': ['user.node_id'], - 'augur': ['gh_node_id'] - } - }, prefix='user.' - ) + if len(source_reviews_insert) > 0: + source_reviews_insert = self.enrich_cntrb_id( + source_reviews_insert, 'user.login', action_map_additions={ + 'insert': { + 'source': ['user.node_id'], + 'augur': ['gh_node_id'] + } + }, prefix='user.' + ) + else: + self.logger.info("Contributor enrichment is not needed, source_reviews_insert is empty.") reviews_insert = [ { @@ -730,6 +808,8 @@ def pull_request_reviews_model(self, pk_source_prs=[]): # Review Comments + # https://api.github.com/repos/chaoss/augur/pulls + review_msg_url = (f'https://api.github.com/repos/{self.owner}/{self.repo}/pulls' + '/comments?per_page=100&page={}') @@ -743,7 +823,7 @@ def pull_request_reviews_model(self, pk_source_prs=[]): in_clause = [] if len(both_pr_review_pk_source_reviews) == 0 else \ set(pd.DataFrame(both_pr_review_pk_source_reviews)['pr_review_id']) - review_msgs = self.new_paginate_endpoint( + review_msgs = self.paginate_endpoint( review_msg_url, action_map=review_msg_action_map, table=self.message_table, where_clause=self.message_table.c.msg_id.in_( [ @@ -759,14 +839,17 @@ def pull_request_reviews_model(self, pk_source_prs=[]): ) self.write_debug_data(review_msgs, 'review_msgs') - review_msgs['insert'] = self.enrich_cntrb_id( - review_msgs['insert'], 'user.login', action_map_additions={ - 'insert': { - 'source': ['user.node_id'], - 'augur': ['gh_node_id'] - } - }, prefix='user.' - ) + if len(review_msgs['insert']) > 0: + review_msgs['insert'] = self.enrich_cntrb_id( + review_msgs['insert'], 'user.login', action_map_additions={ + 'insert': { + 'source': ['user.node_id'], + 'augur': ['gh_node_id'] + } + }, prefix='user.' + ) + else: + self.logger.info("Contributor enrichment is not needed, nothing to insert from the action map.") review_msg_insert = [ { @@ -875,8 +958,14 @@ def pull_request_nested_data_model(self, pk_source_prs=[]): 'augur': ['pull_request_id', 'pr_src_id'] } } - source_labels_insert, _ = self.new_organize_needed_data( - labels_all, augur_table=self.pull_request_labels_table, action_map=label_action_map + + + table_values_pr_labels = self.db.execute( + s.sql.select(self.get_relevant_columns(self.pull_request_labels_table,label_action_map)) + ).fetchall() + + source_labels_insert, _ = self.organize_needed_data( + labels_all, table_values=table_values_pr_labels, action_map=label_action_map ) labels_insert = [ { @@ -901,18 +990,28 @@ def pull_request_nested_data_model(self, pk_source_prs=[]): 'augur': ['pull_request_id', 'pr_reviewer_src_id'] } } - source_reviewers_insert, _ = self.new_organize_needed_data( - reviewers_all, augur_table=self.pull_request_reviewers_table, + + table_values_issue_labels = self.db.execute( + s.sql.select(self.get_relevant_columns(self.pull_request_reviewers_table,reviewer_action_map)) + ).fetchall() + + source_reviewers_insert, _ = self.organize_needed_data( + reviewers_all, table_values=table_values_issue_labels, action_map=reviewer_action_map ) - source_reviewers_insert = self.enrich_cntrb_id( - source_reviewers_insert, 'login', action_map_additions={ - 'insert': { - 'source': ['node_id'], - 'augur': ['gh_node_id'] + + if len(source_reviewers_insert) > 0: + source_reviewers_insert = self.enrich_cntrb_id( + source_reviewers_insert, 'login', action_map_additions={ + 'insert': { + 'source': ['node_id'], + 'augur': ['gh_node_id'] + } } - } - ) + ) + else: + self.logger.info("Contributor enrichment is not needed, no inserts provided.") + reviewers_insert = [ { 'pull_request_id': reviewer['pull_request_id'], @@ -932,18 +1031,30 @@ def pull_request_nested_data_model(self, pk_source_prs=[]): 'augur': ['pull_request_id', 'pr_assignee_src_id'] } } - source_assignees_insert, _ = self.new_organize_needed_data( - assignees_all, augur_table=self.pull_request_assignees_table, + + + table_values_assignees_labels = self.db.execute( + s.sql.select(self.get_relevant_columns(self.pull_request_assignees_table,assignee_action_map)) + ).fetchall() + + source_assignees_insert, _ = self.organize_needed_data( + assignees_all, table_values=table_values_assignees_labels, action_map=assignee_action_map ) - source_assignees_insert = self.enrich_cntrb_id( - source_assignees_insert, 'login', action_map_additions={ - 'insert': { - 'source': ['node_id'], - 'augur': ['gh_node_id'] + + if len(source_assignees_insert) > 0: + source_assignees_insert = self.enrich_cntrb_id( + source_assignees_insert, 'login', action_map_additions={ + 'insert': { + 'source': ['node_id'], + 'augur': ['gh_node_id'] + } } - } - ) + ) + else: + self.logger.info("Contributor enrichment is not needed, no inserts provided.") + + assignees_insert = [ { 'pull_request_id': assignee['pull_request_id'], @@ -964,17 +1075,27 @@ def pull_request_nested_data_model(self, pk_source_prs=[]): } } - source_meta_insert, _ = self.new_organize_needed_data( - meta_all, augur_table=self.pull_request_meta_table, action_map=meta_action_map - ) - source_meta_insert = self.enrich_cntrb_id( - source_meta_insert, 'user.login', action_map_additions={ - 'insert': { - 'source': ['user.node_id'], - 'augur': ['gh_node_id'] - } - }, prefix='user.' + table_values_pull_request_meta = self.db.execute( + s.sql.select(self.get_relevant_columns(self.pull_request_meta_table,meta_action_map)) + ).fetchall() + + source_meta_insert, _ = self.organize_needed_data( + meta_all, table_values=table_values_pull_request_meta, action_map=meta_action_map ) + + + if len(source_meta_insert) > 0: + source_meta_insert = self.enrich_cntrb_id( + source_meta_insert, 'user.login', action_map_additions={ + 'insert': { + 'source': ['user.node_id'], + 'augur': ['gh_node_id'] + } + }, prefix='user.' + ) + else: + self.logger.info("Contributor enrichment is not needed, nothing in source_meta_insert.") + meta_insert = [ { 'pull_request_id': meta['pull_request_id'], diff --git a/workers/release_worker/release_worker.py b/workers/release_worker/release_worker.py index 1ea12e803d..b859de1618 100644 --- a/workers/release_worker/release_worker.py +++ b/workers/release_worker/release_worker.py @@ -1,5 +1,6 @@ #SPDX-License-Identifier: MIT import logging, os, sys, time, requests, json +from workers.worker_git_integration import WorkerGitInterfaceable from datetime import datetime from multiprocessing import Process, Queue from urllib.parse import urlparse @@ -10,7 +11,7 @@ from workers.worker_base import Worker #TODO - fully edit to match releases -class ReleaseWorker(Worker): +class ReleaseWorker(WorkerGitInterfaceable): """ Worker that collects Repository Releases data from the Github API and stores it in our database. diff --git a/workers/repo_info_worker/repo_info_worker.py b/workers/repo_info_worker/repo_info_worker.py index a3f41aa510..9dcf5e03ce 100644 --- a/workers/repo_info_worker/repo_info_worker.py +++ b/workers/repo_info_worker/repo_info_worker.py @@ -1,5 +1,6 @@ #SPDX-License-Identifier: MIT import logging, os, sys, time, requests, json +from workers.worker_git_integration import WorkerGitInterfaceable from datetime import datetime from multiprocessing import Process, Queue import pandas as pd @@ -14,7 +15,7 @@ # 1. Recognizing when a repository is a forked repository by updating the "forked_from" field and # 2. Recognizing when a repository is archived, and recording the data we observed the change in status. -class RepoInfoWorker(Worker): +class RepoInfoWorker(WorkerGitInterfaceable): def __init__(self, config={}): worker_type = "repo_info_worker" diff --git a/workers/value_worker/value_worker.py b/workers/value_worker/value_worker.py index 304e50ea56..905c6726cb 100644 --- a/workers/value_worker/value_worker.py +++ b/workers/value_worker/value_worker.py @@ -2,6 +2,7 @@ import os, subprocess from datetime import datetime import logging +from workers.worker_git_integration import WorkerGitInterfaceable import requests import json from urllib.parse import quote @@ -13,7 +14,7 @@ from sqlalchemy import MetaData from workers.worker_base import Worker -class ValueWorker(Worker): +class ValueWorker(WorkerGitInterfaceable): def __init__(self, config={}): worker_type = "value_worker" diff --git a/workers/worker_base.py b/workers/worker_base.py index ed6c1ab3b3..10879bb07d 100644 --- a/workers/worker_base.py +++ b/workers/worker_base.py @@ -1,118 +1,39 @@ -#SPDX-License-Identifier: MIT -""" Helper methods constant across all workers """ -import requests -import datetime -import time -import traceback -import json -import os -import sys -import math -import logging -import numpy -import copy -import concurrent -import multiprocessing -import psycopg2 -import csv -import io -from logging import FileHandler, Formatter, StreamHandler -from multiprocessing import Process, Queue, Pool -from os import getpid -import sqlalchemy as s -import pandas as pd -from pathlib import Path -from urllib.parse import urlparse, quote -from sqlalchemy.ext.automap import automap_base -from augur.config import AugurConfig -from augur.logging import AugurLogging -from sqlalchemy.sql.expression import bindparam -from concurrent import futures -import dask.dataframe as dd - -class Worker(): - - ROOT_AUGUR_DIR = os.path.dirname(os.path.dirname(os.path.realpath(__file__))) + +from workers.worker_persistance import * +#I figure I can seperate this class into at least three parts. +#I should also look into the subclass and see what uses what. +# +# Parts (Hierarchal relation) +#1. Persistance +#2. Base +#3. Github/lab +# Might be good to seperate the machine learning functionality into its own class too. + + +class Worker(Persistant): ## Set Thread Safety for OSX # os.system("./osx-thread.sh") def __init__(self, worker_type, config={}, given=[], models=[], data_tables=[], operations_tables=[], platform="github"): - self.worker_type = worker_type + #Construct the persistant functionality for the worker + super().__init__(worker_type,data_tables,operations_tables) self.collection_start_time = None self._task = None # task currently being worked on (dict) self._child = None # process of currently running task (multiprocessing process) self._queue = Queue() # tasks stored here 1 at a time (in a mp queue so it can translate across multiple processes) - self.data_tables = data_tables - self.operations_tables = operations_tables - self._root_augur_dir = Worker.ROOT_AUGUR_DIR - self.platform = platform - - # count of tuples inserted in the database (to store stats for each task in op tables) - self.update_counter = 0 - self.insert_counter = 0 - self._results_counter = 0 # if we are finishing a previous task, certain operations work differently self.finishing_task = False # Update config with options that are general and not specific to any worker self.augur_config = AugurConfig(self._root_augur_dir) - self.config = { - 'worker_type': self.worker_type, - 'host': self.augur_config.get_value('Server', 'host'), - 'gh_api_key': self.augur_config.get_value('Database', 'key'), - 'gitlab_api_key': self.augur_config.get_value('Database', 'gitlab_api_key'), - 'offline_mode': False - } - self.config.update(self.augur_config.get_section("Logging")) - - try: - worker_defaults = self.augur_config.get_default_config()['Workers'][self.config['worker_type']] - self.config.update(worker_defaults) - except KeyError as e: - logging.warn('Could not get default configuration for {}'.format(self.config['worker_type'])) - - worker_info = self.augur_config.get_value('Workers', self.config['worker_type']) - self.config.update(worker_info) - - worker_port = self.config['port'] - while True: - try: - r = requests.get('http://{}:{}/AUGWOP/heartbeat'.format( - self.config['host'], worker_port)).json() - if 'status' in r: - if r['status'] == 'alive': - worker_port += 1 - except: - break + #TODO: consider taking parts of this out for the base class and then overriding it in WorkerGitInterfaceable + self.config.update({'offline_mode': False}) - self.config.update({ - 'port': worker_port, - 'id': "workers.{}.{}".format(self.worker_type, worker_port), - 'capture_output': False, - 'location': 'http://{}:{}'.format(self.config['host'], worker_port), - 'port_broker': self.augur_config.get_value('Server', 'port'), - 'host_broker': self.augur_config.get_value('Server', 'host'), - 'host_database': self.augur_config.get_value('Database', 'host'), - 'port_database': self.augur_config.get_value('Database', 'port'), - 'user_database': self.augur_config.get_value('Database', 'user'), - 'name_database': self.augur_config.get_value('Database', 'name'), - 'password_database': self.augur_config.get_value('Database', 'password') - }) self.config.update(config) - # Initialize logging in the main process - self.initialize_logging() - - # Clear log contents from previous runs - open(self.config["server_logfile"], "w").close() - open(self.config["collection_logfile"], "w").close() - - # Get configured collection logger - self.logger = logging.getLogger(self.config["id"]) - self.logger.info('Worker (PID: {}) initializing...'.format(str(os.getpid()))) self.task_info = None self.repo_id = None @@ -145,124 +66,13 @@ def __init__(self, worker_type, config={}, given=[], models=[], data_tables=[], self.tool_source = 'Augur Worker Testing' self.tool_version = '0.0.0' self.data_source = 'Augur Worker Testing' - - def __repr__(self): - return f"{self.config['id']}" - + def write_debug_data(self, data, name): if name in self.debug_data: with open(f'{name}.json', 'w') as f: json.dump(data, f) - def initialize_logging(self): - self.config['log_level'] = self.config['log_level'].upper() - if self.config['debug']: - self.config['log_level'] = 'DEBUG' - - if self.config['verbose']: - format_string = AugurLogging.verbose_format_string - else: - format_string = AugurLogging.simple_format_string - - formatter = Formatter(fmt=format_string) - error_formatter = Formatter(fmt=AugurLogging.error_format_string) - - worker_dir = AugurLogging.get_log_directories(self.augur_config, reset_logfiles=False) + "/workers/" - Path(worker_dir).mkdir(exist_ok=True) - logfile_dir = worker_dir + f"/{self.worker_type}/" - Path(logfile_dir).mkdir(exist_ok=True) - - server_logfile = logfile_dir + '{}_{}_server.log'.format(self.worker_type, self.config["port"]) - collection_logfile = logfile_dir + '{}_{}_collection.log'.format(self.worker_type, self.config["port"]) - collection_errorfile = logfile_dir + '{}_{}_collection.err'.format(self.worker_type, self.config["port"]) - self.config.update({ - 'logfile_dir': logfile_dir, - 'server_logfile': server_logfile, - 'collection_logfile': collection_logfile, - 'collection_errorfile': collection_errorfile - }) - - collection_file_handler = FileHandler(filename=self.config['collection_logfile'], mode="a") - collection_file_handler.setFormatter(formatter) - collection_file_handler.setLevel(self.config['log_level']) - - collection_errorfile_handler = FileHandler(filename=self.config['collection_errorfile'], mode="a") - collection_errorfile_handler.setFormatter(error_formatter) - collection_errorfile_handler.setLevel(logging.WARNING) - - logger = logging.getLogger(self.config['id']) - logger.handlers = [] - logger.addHandler(collection_file_handler) - logger.addHandler(collection_errorfile_handler) - logger.setLevel(self.config['log_level']) - logger.propagate = False - - if self.config['debug']: - self.config['log_level'] = 'DEBUG' - console_handler = StreamHandler() - console_handler.setFormatter(formatter) - console_handler.setLevel(self.config['log_level']) - logger.addHandler(console_handler) - - if self.config['quiet']: - logger.disabled = True - - self.logger = logger - - def initialize_database_connections(self): - DB_STR = 'postgresql://{}:{}@{}:{}/{}'.format( - self.config['user_database'], self.config['password_database'], self.config['host_database'], self.config['port_database'], self.config['name_database'] - ) - - # Create an sqlalchemy engine for both database schemas - self.logger.info("Making database connections") - - db_schema = 'augur_data' - self.db = s.create_engine(DB_STR, poolclass=s.pool.NullPool, - connect_args={'options': '-csearch_path={}'.format(db_schema)}) - - helper_schema = 'augur_operations' - self.helper_db = s.create_engine(DB_STR, poolclass=s.pool.NullPool, - connect_args={'options': '-csearch_path={}'.format(helper_schema)}) - - metadata = s.MetaData() - helper_metadata = s.MetaData() - - # Reflect only the tables we will use for each schema's metadata object - metadata.reflect(self.db, only=self.data_tables) - helper_metadata.reflect(self.helper_db, only=self.operations_tables) - - Base = automap_base(metadata=metadata) - HelperBase = automap_base(metadata=helper_metadata) - - Base.prepare() - HelperBase.prepare() - - # So we can access all our tables when inserting, updating, etc - for table in self.data_tables: - setattr(self, '{}_table'.format(table), Base.classes[table].__table__) - - try: - self.logger.info(HelperBase.classes.keys()) - except: - pass - - for table in self.operations_tables: - try: - setattr(self, '{}_table'.format(table), HelperBase.classes[table].__table__) - except Exception as e: - self.logger.error("Error setting attribute for table: {} : {}".format(table, e)) - - # Increment so we are ready to insert the 'next one' of each of these most recent ids - self.history_id = self.get_max_id('worker_history', 'history_id', operations_table=True) + 1 - - # Organize different api keys/oauths available - self.logger.info("Initializing API key.") - if 'gh_api_key' in self.config or 'gitlab_api_key' in self.config: - self.init_oauths(self.platform) - else: - self.oauths = [{'oauth_id': 0}] - + @property def results_counter(self): """ Property that is returned when the worker's current results_counter is referenced @@ -325,6 +135,8 @@ def collect(self): self.initialize_logging() # need to initialize logging again in child process cause multiprocessing self.logger.info("Starting data collection process\n") self.initialize_database_connections() + #self.logger.info("Got to this point.") + #self.logger.info(f"This is the oauths 0 index {self.oauths}") while True: if not self._queue.empty(): message = self._queue.get() # Get the task off our MP queue @@ -350,6 +162,7 @@ def collect(self): # Call method corresponding to model sent in task try: model_method = getattr(self, '{}_model'.format(message['models'][0])) + #TODO: set this to record exceptions seperatly. This errored and it took a while to figure that ^ wasn't the line that was erroring. self.record_model_process(repo_id, 'repo_info') except Exception as e: self.logger.error('Error: {}.\nNo defined method for model: {}, '.format(e, message['models'][0]) + @@ -374,380 +187,6 @@ def collect(self): self.helper_db.dispose() self.logger.info("Collection process finished") - def sync_df_types(self, subject, source, subject_columns, source_columns): - - type_dict = {} - for index in range(len(source_columns)): - if type(source[source_columns[index]].values[0]) == numpy.datetime64: - subject[subject_columns[index]] = pd.to_datetime( - subject[subject_columns[index]], utc=True - ) - source[source_columns[index]] = pd.to_datetime( - source[source_columns[index]], utc=True - ) - continue - type_dict[subject_columns[index]] = type(source[source_columns[index]].values[0]) - - subject = subject.astype(type_dict) - - return subject, source - - def get_sqlalchemy_type(self, data, column_name=None): - if type(data) == str: - try: - time.strptime(data, "%Y-%m-%dT%H:%M:%SZ") - return s.types.TIMESTAMP - except ValueError: - return s.types.String - elif ( - isinstance(data, (int, numpy.integer)) - or (isinstance(data, float) and column_name and 'id' in column_name) - ): - return s.types.BigInteger - elif isinstance(data, float): - return s.types.Float - elif type(data) in [numpy.datetime64, pd._libs.tslibs.timestamps.Timestamp]: - return s.types.TIMESTAMP - elif column_name and 'id' in column_name: - return s.types.BigInteger - return s.types.String - - def _convert_float_nan_to_int(self, df): - for column in df.columns: - if ( - df[column].dtype == float - and ((df[column] % 1 == 0) | (df[column].isnull())).all() - ): - df[column] = df[column].astype("Int64").astype(object).where( - pd.notnull(df[column]), None - ) - return df - - def _setup_postgres_merge(self, data_sets, sort=False): - - metadata = s.MetaData() - - data_tables = [] - - # Setup/create tables - for index, data in enumerate(data_sets): - - data_table = s.schema.Table(f"merge_data_{index}_{os.getpid()}", metadata) - df = pd.DataFrame(data) - - columns = sorted(list(df.columns)) if sort else df.columns - df = self._convert_float_nan_to_int(df) - for column in columns: - data_table.append_column( - s.schema.Column( - column, self.get_sqlalchemy_type( - df.fillna(method='bfill').iloc[0][column], column_name=column - ) - ) - ) - - data_tables.append(data_table) - - metadata.create_all(self.db, checkfirst=True) - - # Insert data to tables - for data_table, data in zip(data_tables, data_sets): - self.bulk_insert( - data_table, insert=data, increment_counter=False, convert_float_int=True - ) - - session = s.orm.Session(self.db) - self.logger.info("Session created for merge tables") - - return data_tables, metadata, session - - def _close_postgres_merge(self, metadata, session): - - session.close() - self.logger.info("Session closed") - - # metadata.reflect(self.db, only=[new_data_table.name, table_values_table.name]) - metadata.drop_all(self.db, checkfirst=True) - self.logger.info("Merge tables dropped") - - def _get_data_set_columns(self, data, columns): - if not len(data): - return [] - self.logger.info("Getting data set columns") - df = pd.DataFrame(data, columns=data[0].keys()) - final_columns = copy.deepcopy(columns) - for column in columns: - if '.' not in column: - continue - root = column.split('.')[0] - if root not in df.columns: - df[root] = None - expanded_column = pd.DataFrame( - df[root].where(df[root].notna(), lambda x: [{}]).tolist() - ) - expanded_column.columns = [ - f'{root}.{attribute}' for attribute in expanded_column.columns - ] - if column not in expanded_column.columns: - expanded_column[column] = None - final_columns += list(expanded_column.columns) - try: - df = df.join(expanded_column) - except ValueError: - # columns already added (happens if trying to expand the same column twice) - # TODO: Catch this before by only looping unique prefixs? - self.logger.info("Columns have already been added, moving on...") - pass - self.logger.info(final_columns) - self.logger.info(list(set(final_columns))) - self.logger.info("Finished getting data set columns") - return df[list(set(final_columns))].to_dict(orient='records') - - def organize_needed_data( - self, new_data, table_values, table_pkey, action_map={}, in_memory=True - ): - - if len(table_values) == 0: - return new_data, [] - - if len(new_data) == 0: - return [], [] - - need_insertion = pd.DataFrame() - need_updates = pd.DataFrame() - - if not in_memory: - - new_data_columns = action_map['insert']['source'] - table_value_columns = action_map['insert']['augur'] - if 'update' in action_map: - new_data_columns += action_map['update']['source'] - table_value_columns += action_map['update']['augur'] - - (new_data_table, table_values_table), metadata, session = self._setup_postgres_merge( - [ - self._get_data_set_columns(new_data, new_data_columns), - self._get_data_set_columns(table_values, table_value_columns) - ] - ) - - need_insertion = pd.DataFrame(session.query(new_data_table).join(table_values_table, - eval( - ' and '.join([ - f"table_values_table.c.{table_column} == new_data_table.c.{source_column}" \ - for table_column, source_column in zip(action_map['insert']['augur'], - action_map['insert']['source']) - ]) - ), isouter=True).filter( - table_values_table.c[action_map['insert']['augur'][0]] == None - ).all(), columns=table_value_columns) - - self.logger.info("need_insertion calculated successfully") - - need_updates = pd.DataFrame(columns=table_value_columns) - if 'update' in action_map: - need_updates = pd.DataFrame(session.query(new_data_table).join(table_values_table, - s.and_( - eval(' and '.join([f"table_values_table.c.{table_column} == new_data_table.c.{source_column}" for \ - table_column, source_column in zip(action_map['insert']['augur'], action_map['insert']['source'])])), - - eval(' and '.join([f"table_values_table.c.{table_column} != new_data_table.c.{source_column}" for \ - table_column, source_column in zip(action_map['update']['augur'], action_map['update']['source'])])) - ) ).all(), columns=table_value_columns) - self.logger.info("need_updates calculated successfully") - - self._close_postgres_merge(metadata, session) - - new_data_df = pd.DataFrame(new_data) - - need_insertion, new_data_df = self.sync_df_types( - need_insertion, new_data_df, table_value_columns, new_data_columns - ) - need_insertion = need_insertion.merge( - new_data_df, how='inner', left_on=table_value_columns, right_on=new_data_columns - ) - - self.logger.info( - f"Table needs {len(need_insertion)} insertions and " - f"{len(need_updates)} updates.\n") - - else: - - table_values_df = pd.DataFrame(table_values, columns=table_values[0].keys()) - new_data_df = pd.DataFrame(new_data).dropna(subset=action_map['insert']['source']) - - new_data_df, table_values_df = self.sync_df_types(new_data_df, table_values_df, - action_map['insert']['source'], action_map['insert']['augur']) - - need_insertion = new_data_df.merge(table_values_df, suffixes=('','_table'), - how='outer', indicator=True, left_on=action_map['insert']['source'], - right_on=action_map['insert']['augur']).loc[lambda x : x['_merge']=='left_only'] - - if 'update' in action_map: - new_data_df, table_values_df = self.sync_df_types(new_data_df, table_values_df, - action_map['update']['source'], action_map['update']['augur']) - - partitions = math.ceil(len(new_data_df) / 1000) - attempts = 0 - while attempts < 50: - try: - need_updates = pd.DataFrame() - self.logger.info(f"Trying {partitions} partitions\n") - for sub_df in numpy.array_split(new_data_df, partitions): - self.logger.info(f"Trying a partition, len {len(sub_df)}\n") - need_updates = pd.concat([ need_updates, sub_df.merge(table_values_df, left_on=action_map['insert']['source'], - right_on=action_map['insert']['augur'], suffixes=('','_table'), how='inner', - indicator=False).merge(table_values_df, left_on=action_map['update']['source'], - right_on=action_map['update']['augur'], suffixes=('','_table'), how='outer', - indicator=True).loc[lambda x : x['_merge']=='left_only'] ]) - self.logger.info(f"need_updates merge: {len(sub_df)} worked\n") - break - - except MemoryError as e: - self.logger.info(f"new_data ({sub_df.shape}) is too large to allocate memory for " + - f"need_updates df merge.\nMemoryError: {e}\nTrying again with {partitions + 1} partitions...\n") - partitions += 1 - attempts += 1 - # self.logger.info(f"End attempt # {attempts}\n") - if attempts >= 50: - self.loggger.info("Max need_updates merge attempts exceeded, cannot perform " + - "updates on this repo.\n") - else: - need_updates = need_updates.drop([column for column in list(need_updates.columns) if \ - column not in action_map['update']['augur'] and column not in action_map['insert']['augur']], - axis='columns') - - for column in action_map['insert']['augur']: - need_updates[f'b_{column}'] = need_updates[column] - - need_updates = need_updates.drop([column for column in action_map['insert']['augur']], axis='columns') - - return need_insertion.to_dict('records'), need_updates.to_dict('records') - - def assign_tuple_action(self, new_data, table_values, update_col_map, duplicate_col_map, table_pkey, value_update_col_map={}): - """ DEPRECATED - Include an extra key-value pair on each element of new_data that represents - the action that should be taken with this element (i.e. 'need_insertion') - - :param new_data: List of dictionaries, data to be assigned an action to - :param table_values: Pandas DataFrame, existing data in the database to check - what action should be taken on the new_data depending on the presence of - each element in this DataFrame - :param update_col_map: Dictionary, maps the column names of the source data - to the field names in our database for columns that should be checked for - updates (if source data value != value in existing database row, then an - update is needed). Key is source data column name, value is database field name. - Example: {'id': 'gh_issue_id'} - :param duplicate_col_map: Dictionary, maps the column names of the source data - to the field names in our database for columns that should be checked for - duplicates (if source data value == value in existing database row, then this - element is a duplicate and would not need an insertion). Key is source data - column name, value is database field name. Example: {'id': 'gh_issue_id'} - :param table_pkey: String, the field name of the primary key of the table in - the database that we are checking the table_values for. - :param value_update_col_map: Dictionary, sometimes we add a new field to a table, - and we want to trigger an update of that row in the database even if all of the - data values are the same and would not need an update ordinarily. Checking for - a specific existing value in the database field allows us to do this. The key is the - name of the field in the database we are checking for a specific value to trigger - an update, the value is the value we are checking for equality to trigger an update. - Example: {'cntrb_id': None} - :return: List of dictionaries, contains all the same elements of new_data, except - each element now has an extra key-value pair with the key being 'flag', and - the value being 'need_insertion', 'need_update', or 'none' - """ - need_insertion_count = 0 - need_update_count = 0 - - if type(table_values) == list: - if len(table_values) > 0: - table_values = pd.DataFrame(table_values, columns=table_values[0].keys()) - else: - table_values = pd.DataFrame(table_values) - - for i, obj in enumerate(new_data): - if type(obj) != dict: - new_data[i] = {'flag': 'none'} - continue - - obj['flag'] = 'none' # default of no action needed - existing_tuple = None - for db_dupe_key in list(duplicate_col_map.keys()): - - if table_values.isin([obj[duplicate_col_map[db_dupe_key]]]).any().any(): - if table_values[table_values[db_dupe_key].isin( - [obj[duplicate_col_map[db_dupe_key]]])].to_dict('records'): - - existing_tuple = table_values[table_values[db_dupe_key].isin( - [obj[duplicate_col_map[db_dupe_key]]])].to_dict('records')[0] - continue - - obj['flag'] = 'need_insertion' - need_insertion_count += 1 - break - - if obj['flag'] == 'need_insertion': - continue - - if not existing_tuple: - self.logger.info('An existing tuple was not found for this data ' + - 'point and we have reached the check-updates portion of assigning ' + - 'tuple action, so we will now move to next data point\n') - continue - - # If we need to check the values of the existing tuple to determine if an update is needed - for augur_col, value_check in value_update_col_map.items(): - not_nan_check = not (math.isnan(value_check) and math.isnan(existing_tuple[augur_col])) if value_check is not None else True - if existing_tuple[augur_col] != value_check and not_nan_check: - continue - self.logger.info("Found a tuple that needs an update for column: {}\n".format(augur_col)) - obj['flag'] = 'need_update' - obj['pkey'] = existing_tuple[table_pkey] - need_update_count += 1 - - if obj['flag'] == 'need_update': - self.logger.info('Already determined that current tuple needs update, skipping checking further updates. ' - 'Moving to next tuple.\n') - continue - - # Now check the existing tuple's values against the response values to determine if an update is needed - for col in update_col_map.keys(): - if update_col_map[col] not in obj: - continue - if obj[update_col_map[col]] == existing_tuple[col]: - continue - self.logger.info("Found a tuple that needs an update for column: {}\n".format(col)) - obj['flag'] = 'need_update' - self.logger.info(existing_tuple) - obj['pkey'] = existing_tuple[table_pkey] - need_update_count += 1 - - self.logger.info("Page recieved has {} tuples, while filtering duplicates this ".format(len(new_data)) + - "was reduced to {} tuples, and {} tuple updates are needed.\n".format(need_insertion_count, need_update_count)) - return new_data - - def check_duplicates(self, new_data, table_values, key): - """ Filters what items of the new_data json (list of dictionaries) that are not - present in the table_values df - - :param new_data: List of dictionaries, new data to filter duplicates out of - :param table_values: Pandas DataFrame, existing data to check what data is already - present in the database - :param key: String, key of each dict in new_data whose value we are checking - duplicates with - :return: List of dictionaries, contains elements of new_data that are not already - present in the database - """ - need_insertion = [] - for obj in new_data: - if type(obj) != dict: - continue - if not table_values.isin([obj[key]]).any().any(): - need_insertion.append(obj) - self.logger.info("Page recieved has {} tuples, while filtering duplicates this ".format(str(len(new_data))) + - "was reduced to {} tuples.\n".format(str(len(need_insertion)))) - return need_insertion - def connect_to_broker(self): connected = False for i in range(5): @@ -911,1549 +350,9 @@ def get_owner_repo(self, git_url): return owner, repo - def get_max_id(self, table, column, default=25150, operations_table=False): - """ Gets the max value (usually used for id/pk's) of any Integer column - of any table - - :param table: String, the table that consists of the column you want to - query a max value for - :param column: String, the column that you want to query the max value for - :param default: Integer, if there are no values in the - specified column, the value of this parameter will be returned - :param operations_table: Boolean, if True, this signifies that the table/column - that is wanted to be queried is in the augur_operations schema rather than - the augur_data schema. Default False - :return: Integer, the max value of the specified column/table - """ - maxIdSQL = s.sql.text(""" - SELECT max({0}.{1}) AS {1} - FROM {0} - """.format(table, column)) - db = self.db if not operations_table else self.helper_db - rs = pd.read_sql(maxIdSQL, db, params={}) - if rs.iloc[0][column] is not None: - max_id = int(rs.iloc[0][column]) + 1 - self.logger.info("Found max id for {} column in the {} table: {}\n".format(column, table, max_id)) - else: - max_id = default - self.logger.warning("Could not find max id for {} column in the {} table... " + - "using default set to: {}\n".format(column, table, max_id)) - return max_id - - def get_table_values(self, cols, tables, where_clause=""): - """ Can query all values of any column(s) from any table(s) - with an optional where clause - - :param cols: List of Strings, column(s) that user wants to query - :param tables: List of Strings, table(s) that user wants to query - :param where_clause: String, optional where clause to filter the values - queried - :return: Pandas DataFrame, contains all values queried in the columns, tables, and - optional where clause provided - """ - table_str = tables[0] - del tables[0] - - col_str = cols[0] - del cols[0] - - for table in tables: - table_str += ", " + table - for col in cols: - col_str += ", " + col - - table_values_sql = s.sql.text(""" - SELECT {} FROM {} {} - """.format(col_str, table_str, where_clause)) - self.logger.info("Getting table values with the following PSQL query: \n{}\n".format( - table_values_sql)) - values = pd.read_sql(table_values_sql, self.db, params={}) - return values - - def init_oauths(self, platform='github'): - self.oauths = [] - self.headers = None - self.logger.info("Trying initialization.") - # Make a list of api key in the config combined w keys stored in the database - # Select endpoint to hit solely to retrieve rate limit - # information from headers of the response - # Adjust header keys needed to fetch rate limit information from the API responses - if platform == 'github': - url = "https://api.github.com/users/gabe-heim" - oauthSQL = s.sql.text(""" - SELECT * FROM worker_oauth WHERE access_token <> '{}' and platform = 'github' - """.format(self.config['gh_api_key'])) - key_name = 'gh_api_key' - rate_limit_header_key = "X-RateLimit-Remaining" - rate_limit_reset_header_key = "X-RateLimit-Reset" - elif platform == 'gitlab': - url = "https://gitlab.com/api/v4/version" - oauthSQL = s.sql.text(""" - SELECT * FROM worker_oauth WHERE access_token <> '{}' and platform = 'gitlab' - """.format(self.config['gitlab_api_key'])) - key_name = 'gitlab_api_key' - rate_limit_header_key = 'ratelimit-remaining' - rate_limit_reset_header_key = 'ratelimit-reset' - - for oauth in [{'oauth_id': 0, 'access_token': self.config[key_name]}] + json.loads( - pd.read_sql(oauthSQL, self.helper_db, params={}).to_json(orient="records") - ): - if platform == 'github': - self.headers = {'Authorization': 'token %s' % oauth['access_token']} - elif platform == 'gitlab': - self.headers = {'Authorization': 'Bearer %s' % oauth['access_token']} - response = requests.get(url=url, headers=self.headers) - self.oauths.append({ - 'oauth_id': oauth['oauth_id'], - 'access_token': oauth['access_token'], - 'rate_limit': int(response.headers[rate_limit_header_key]), - 'seconds_to_reset': ( - datetime.datetime.fromtimestamp( - int(response.headers[rate_limit_reset_header_key]) - ) - datetime.datetime.now() - ).total_seconds() - }) - self.logger.debug("Found OAuth available for use: {}".format(self.oauths[-1])) - - if len(self.oauths) == 0: - self.logger.info( - "No API keys detected, please include one in your config or in the " - "worker_oauths table in the augur_operations schema of your database." - ) - - # First key to be used will be the one specified in the config (first element in - # self.oauths array will always be the key in use) - if platform == 'github': - self.headers = {'Authorization': 'token %s' % self.oauths[0]['access_token']} - elif platform == 'gitlab': - self.headers = {'Authorization': 'Bearer %s' % self.oauths[0]['access_token']} - - self.logger.info("OAuth initialized\n") - - def bulk_insert( - self, table, insert=[], update=[], unique_columns=[], update_columns=[], - max_attempts=3, attempt_delay=3, increment_counter=True, convert_float_int=False - ): - """ Performs bulk inserts/updates of the given data to the given table - - :param table: String, name of the table that we are inserting/updating rows - :param insert: List of dicts, data points to insert - :param update: List of dicts, data points to update, only needs key/value - pairs of the update_columns and the unique_columns - :param unique_columns: List of strings, column names that would uniquely identify any - given data point - :param update_columns: List of strings, names of columns that are being updated - :param max_attempts: Integer, number of attempts to perform on inserting/updating - before moving on - :param attempt_delay: Integer, number of seconds to wait in between attempts - :returns: SQLAlchemy database execution response object(s), contains metadata - about number of rows inserted etc. This data is not often used. - """ - - self.logger.info( - f"{len(insert)} insertions are needed and {len(update)} " - f"updates are needed for {table}" - ) - - update_result = None - insert_result = None - - if len(update) > 0: - attempts = 0 - update_start_time = time.time() - while attempts < max_attempts: - try: - update_result = self.db.execute( - table.update().where( - eval( - ' and '.join( - [ - f"self.{table}_table.c.{key} == bindparam('b_{key}')" - for key in unique_columns - ] - ) - ) - ).values( - {key: key for key in update_columns} - ), - update - ) - if increment_counter: - self.update_counter += update_result.rowcount - self.logger.info( - f"Updated {update_result.rowcount} rows in " - f"{time.time() - update_start_time} seconds" - ) - break - except Exception as e: - self.logger.info(f"Warning! Error bulk updating data: {e}") - time.sleep(attempt_delay) - attempts += 1 - - if len(insert) > 0: - - insert_start_time = time.time() - - def psql_insert_copy(table, conn, keys, data_iter): - """ - Execute SQL statement inserting data - - Parameters - ---------- - table : pandas.io.sql.SQLTable - conn : sqlalchemy.engine.Engine or sqlalchemy.engine.Connection - keys : list of str - Column names - data_iter : Iterable that iterates the values to be inserted - """ - # gets a DBAPI connection that can provide a cursor - dbapi_conn = conn.connection - with dbapi_conn.cursor() as cur: - s_buf = io.StringIO() - writer = csv.writer(s_buf) - writer.writerows(data_iter) - s_buf.seek(0) - - columns = ', '.join('"{}"'.format(k) for k in keys) - if table.schema: - table_name = '{}.{}'.format(table.schema, table.name) - else: - table_name = table.name - - sql = 'COPY {} ({}) FROM STDIN WITH CSV'.format( - table_name, columns) - cur.copy_expert(sql=sql, file=s_buf) - - df = pd.DataFrame(insert) - if convert_float_int: - df = self._convert_float_nan_to_int(df) - df.to_sql( - name=table.name, - con=self.db, - if_exists="append", - index=False, - method=psql_insert_copy - ) - if increment_counter: - self.insert_counter += len(insert) - - self.logger.info( - f"Inserted {len(insert)} rows in {time.time() - insert_start_time} seconds " - "thanks to postgresql's COPY FROM CSV! :)" - ) - - return insert_result, update_result - - def text_clean(self, data, field): - """ "Cleans" the provided field of each dict in the list of dicts provided - by removing NUL (C text termination) characters - Example: "\u0000" - - :param data: List of dicts - :param field: String - :returns: Same data list with each element's field updated with NUL characters - removed - """ - return [ - { - **data_point, - field: data_point[field].replace("\x00", "\uFFFD") - } for data_point in data - ] - - def _add_nested_columns(self, df, column_names): - # todo: support deeper nests (>1) and only expand necessary columns - # todo: merge with _get_data_set_columns - - for column in column_names: - if '.' not in column: - continue - root = column.split('.')[0] - if root not in df.columns: - df[root] = None - expanded_column = pd.DataFrame( - df[root].where(df[root].notna(), lambda x: [{}]).tolist() - ) - expanded_column.columns = [ - f'{root}.{attribute}' for attribute in expanded_column.columns - ] - if column not in expanded_column.columns: - expanded_column[column] = None - try: - df = df.join(expanded_column) - except ValueError: - # columns already added (happens if trying to expand the same column twice) - # TODO: Catch this before by only looping unique prefixs? - pass - - return df - - def enrich_cntrb_id( - self, data, key, action_map_additions={'insert': {'source': [], 'augur': []}}, - platform='github', prefix='' - ): - - if not len(data): - return data - - self.logger.info(f"Enriching contributor ids for {len(data)} data points...") - - source_df = pd.DataFrame(data) - expanded_source_df = self._add_nested_columns( - source_df.copy(), [key] + action_map_additions['insert']['source'] - ) - - # Insert cntrbs that are not in db - - cntrb_action_map = { - 'insert': { - 'source': [key] + action_map_additions['insert']['source'], - 'augur': ['cntrb_login'] + action_map_additions['insert']['augur'] - } - } - source_cntrb_insert, _ = self.new_organize_needed_data( - expanded_source_df.to_dict(orient='records'), augur_table=self.contributors_table, - action_map=cntrb_action_map - ) - - cntrb_insert = [ - { - 'cntrb_login': contributor[f'{prefix}login'], - 'cntrb_created_at': None if ( - f'{prefix}created_at' not in contributor - ) else contributor[f'{prefix}created_at'], - 'cntrb_email': None if f'{prefix}email' not in contributor else contributor[f'{prefix}email'], - 'cntrb_company': None if f'{prefix}company' not in contributor else contributor[f'{prefix}company'], - 'cntrb_location': None if ( - f'{prefix}location' not in contributor - ) else contributor[f'{prefix}location'], - 'gh_user_id': None if ( - not contributor[f'{prefix}id'] - ) else int(float(contributor[f'{prefix}id'])), - 'gh_login': contributor[f'{prefix}login'], - 'gh_url': contributor[f'{prefix}url'], - 'gh_html_url': contributor[f'{prefix}html_url'], - 'gh_node_id': contributor[f'{prefix}node_id'], - 'gh_avatar_url': contributor[f'{prefix}avatar_url'], - 'gh_gravatar_id': contributor[f'{prefix}gravatar_id'], - 'gh_followers_url': contributor[f'{prefix}followers_url'], - 'gh_following_url': contributor[f'{prefix}following_url'], - 'gh_gists_url': contributor[f'{prefix}gists_url'], - 'gh_starred_url': contributor[f'{prefix}starred_url'], - 'gh_subscriptions_url': contributor[f'{prefix}subscriptions_url'], - 'gh_organizations_url': contributor[f'{prefix}organizations_url'], - 'gh_repos_url': contributor[f'{prefix}repos_url'], - 'gh_events_url': contributor[f'{prefix}events_url'], - 'gh_received_events_url': contributor[f'{prefix}received_events_url'], - 'gh_type': contributor[f'{prefix}type'], - 'gh_site_admin': contributor[f'{prefix}site_admin'], - 'tool_source': self.tool_source, - 'tool_version': self.tool_version, - 'data_source': self.data_source - } for contributor in source_cntrb_insert if contributor[f'{prefix}login'] - ] - - self.bulk_insert(self.contributors_table, cntrb_insert) - - # Query db for inserted cntrb pkeys and add to shallow level of data - - # Query - cntrb_pk_name = list(self.contributors_table.primary_key)[0].name - session = s.orm.Session(self.db) - inserted_pks = pd.DataFrame( - session.query( - self.contributors_table.c[cntrb_pk_name], self.contributors_table.c.cntrb_login, - self.contributors_table.c.gh_node_id - ).distinct(self.contributors_table.c.cntrb_login).order_by( - self.contributors_table.c.cntrb_login, self.contributors_table.c[cntrb_pk_name] - ).all(), columns=[cntrb_pk_name, 'cntrb_login', 'gh_node_id'] - ).to_dict(orient='records') - session.close() - - # Prepare for merge - source_columns = sorted(list(source_df.columns)) - necessary_columns = sorted(list(set(source_columns + cntrb_action_map['insert']['source']))) - (source_table, inserted_pks_table), metadata, session = self._setup_postgres_merge( - [ - expanded_source_df[necessary_columns].to_dict(orient='records'), - inserted_pks - ], sort=True - ) - final_columns = [cntrb_pk_name] + sorted(list(set(necessary_columns))) - - # Merge - source_pk = pd.DataFrame( - session.query( - inserted_pks_table.c.cntrb_id, source_table - ).join( - source_table, - eval( - ' and '.join( - [ - ( - f"inserted_pks_table.c['{table_column}'] " - f"== source_table.c['{source_column}']" - ) for table_column, source_column in zip( - cntrb_action_map['insert']['augur'], - cntrb_action_map['insert']['source'] - ) - ] - ) - ) - ).all(), columns=final_columns - ) - - # Cleanup merge - source_pk = self._eval_json_columns(source_pk) - self._close_postgres_merge(metadata, session) - - self.logger.info( - "Contributor id enrichment successful, result has " - f"{len(source_pk)} data points.\n" - ) - - return source_pk.to_dict(orient='records') - - def enrich_data_primary_keys( - self, source_data, table, gh_merge_fields, augur_merge_fields, in_memory=False - ): - - self.logger.info("Preparing to enrich data.\n") - - if len(source_data) == 0: - self.logger.info("There is no source data to enrich.\n") - return source_data - - source_df = self._add_nested_columns(pd.DataFrame(source_data), gh_merge_fields) - - if not in_memory: - - source_pk_columns = list(source_df.columns) - source_pk_columns.insert(0, list(table.primary_key)[0].name) - - (source_table, ), metadata, session = self._setup_postgres_merge( - # [self._get_data_set_columns(source_data, gh_merge_fields)] - [source_df.to_dict(orient='records')] - ) - - source_pk = pd.DataFrame( - - # eval( - # "session.query(" - # + ", ".join( - # [ - # f"table.c['{column}']" for column in [list(table.primary_key)[0].name] - # + augur_merge_fields - # ] - # ) - # + ")" - # ) - session.query( - table.c[list(table.primary_key)[0].name], - source_table - # eval( - # f"table.c['{list(table.primary_key)[0].name}'], " - # + ", ".join( - # [ - # f"source_table.c['{column}']" for column in source_pk_columns - # ] - # ) - # ) - ).join( - source_table, - eval( - ' and '.join( - [ - f"table.c['{table_column}'] == source_table.c['{source_column}']" - for table_column, source_column in zip( - augur_merge_fields, gh_merge_fields - ) - ] - ) - ) - ).all(), columns=source_pk_columns # gh_merge_fields - ) - - source_pk = self._eval_json_columns(source_pk) - - # source_pk, source_df = self.sync_df_types( - # source_pk, source_df, gh_merge_fields, gh_merge_fields - # ) - # source_pk = source_pk.merge(source_df, how='inner', on=gh_merge_fields) - - self.logger.info("source_pk calculated successfully") - - self._close_postgres_merge(metadata, session) - self.logger.info("Done") - - else: - - # s_tuple = s.tuple_([table.c[field] for field in augur_merge_fields]) - # s_tuple.__dict__['clauses'] = s_tuple.__dict__['clauses'][0].effective_value - # s_tuple.__dict__['_type_tuple'] = [] - # for field in augur_merge_fields: - # s_tuple.__dict__['_type_tuple'].append(table.c[field].__dict__['type']) - - # try: - # primary_keys = self.db.execute(s.sql.select( - # [table.c[field] for field in augur_merge_fields] + [table.c[list(table.primary_key)[0].name]] - # ).where( - # s_tuple.in_( - - # list(source_df[gh_merge_fields].itertuples(index=False)) - # ))).fetchall() - # except psycopg2.errors.StatementTooComplex as e: - self.logger.info("Retrieve pk statement too complex, querying all instead " + - "and performing partitioned merge.\n") - all_primary_keys = self.db.execute(s.sql.select( - [table.c[field] for field in augur_merge_fields] + [table.c[list(table.primary_key)[0].name]] - )).fetchall() - self.logger.info("Queried all") - all_primary_keys_df = pd.DataFrame(all_primary_keys, - columns=augur_merge_fields + [list(table.primary_key)[0].name]) - self.logger.info("Converted to df") - - source_df, all_primary_keys_df = self.sync_df_types(source_df, all_primary_keys_df, - gh_merge_fields, augur_merge_fields) - - self.logger.info("Synced df types") - - partitions = math.ceil(len(source_df) / 600)#1000) - attempts = 0 - while attempts < 50: - try: - source_pk = pd.DataFrame() - self.logger.info(f"Trying {partitions} partitions of new data, {len(all_primary_keys_df)} " + - "pk data points to enrich\n") - for sub_df in numpy.array_split(source_df, partitions): - self.logger.info(f"Trying a partition, len {len(sub_df)}\n") - source_pk = pd.concat([ source_pk, sub_df.merge(all_primary_keys_df, suffixes=('','_table'), - how='inner', left_on=gh_merge_fields, right_on=augur_merge_fields) ]) - self.logger.info(f"source_pk merge: {len(sub_df)} worked\n") - break - - except MemoryError as e: - self.logger.info(f"new_data ({sub_df.shape}) is too large to allocate memory for " + - f"source_pk df merge.\nMemoryError: {e}\nTrying again with {partitions + 1} partitions...\n") - partitions += 1 - attempts += 1 - # self.logger.info(f"End attempt # {attempts}\n") - if attempts >= 50: - self.logger.info("Max source_pk merge attempts exceeded, cannot perform " + - "updates on this repo.\n") - else: - self.logger.info(f"Data enrichment successful, length: {len(source_pk)}\n") - - # all_primary_keys_df.to_json(path_or_buf='all_primary_keys_df.json', orient='records') - - # all_primary_keys_dask_df = dd.from_pandas(all_primary_keys_df, chunksize=1000) - # source_dask_df = dd.from_pandas(source_df, chunksize=1000) - # result = json.loads(source_dask_df.merge(all_primary_keys_dask_df, suffixes=('','_table'), - # how='inner', left_on=gh_merge_fields, right_on=augur_merge_fields).compute( - # ).to_json(default_handler=str, orient='records')) - return source_pk.to_dict(orient='records') - - # if len(primary_keys) > 0: - # primary_keys_df = pd.DataFrame(primary_keys, - # columns=augur_merge_fields + [list(table.primary_key)[0].name]) - # else: - # self.logger.info("There are no inserted primary keys to enrich the source data with.\n") - # return [] - - # source_df, primary_keys_df = self.sync_df_types(source_df, primary_keys_df, - # gh_merge_fields, augur_merge_fields) - - # source_df = dd.from_pandas(source_df, chunksize=1000) - # primary_keys_df = dd.from_pandas(primary_keys_df, chunksize=1000) - - # result = json.loads(source_df.merge(primary_keys_df, suffixes=('','_table'), - # how='inner', left_on=gh_merge_fields, right_on=augur_merge_fields).compute().to_json( - # default_handler=str, orient='records')) - - # self.logger.info("Data enrichment successful.\n") - # return result - - def multi_thread_urls(self, all_urls, max_attempts=5, platform='github'): - """ - :param all_urls: list of tuples - """ - - if not len(all_urls): - self.logger.info("No urls to multithread, returning blank list.\n") - return [] - - def load_url(url, extra_data={}): - try: - html = requests.get(url, stream=True, headers=self.headers) - return html, extra_data - except requests.exceptions.RequestException as e: - self.logger.info(e, url) - - self.logger.info("Beginning to multithread API endpoints.") - - start = time.time() - - all_data = [] - valid_url_count = len(all_urls) - - partitions = math.ceil(len(all_urls) / 600) - self.logger.info(f"{len(all_urls)} urls to process. Trying {partitions} partitions. " + - f"Using {max(multiprocessing.cpu_count()//8, 1)} threads.") - for urls in numpy.array_split(all_urls, partitions): - attempts = 0 - self.logger.info(f"Total data points collected so far: {len(all_data)}") - while len(urls) > 0 and attempts < max_attempts: - with concurrent.futures.ThreadPoolExecutor( - max_workers=max(multiprocessing.cpu_count()//8, 1) - ) as executor: - # Start the load operations and mark each future with its URL - future_to_url = {executor.submit(load_url, *url): url for url in urls} - self.logger.info("Multithreaded urls and returned status codes:") - count = 0 - for future in concurrent.futures.as_completed(future_to_url): - - if count % 100 == 0: - self.logger.info( - f"Processed {len(all_data)} / {valid_url_count} urls. " - f"{len(urls)} remaining in this partition." - ) - count += 1 - - url = future_to_url[future] - try: - response, extra_data = future.result() - - if response.status_code != 200: - self.logger.info( - f"Url: {url[0]} ; Status code: {response.status_code}" - ) - - if response.status_code == 403 or response.status_code == 401: # 403 is rate limit, 404 is not found, 401 is bad credentials - self.update_rate_limit(response, platform=platform) - continue - - elif response.status_code == 200: - try: - page_data = response.json() - except: - page_data = json.loads(json.dumps(response.text)) - - page_data = [{**data, **extra_data} for data in page_data] - all_data += page_data - - if 'last' in response.links and "&page=" not in url[0]: - urls += [ - (url[0] + f"&page={page}", extra_data) for page in range( - 2, int(response.links['last']['url'].split('=')[-1]) + 1 - ) - ] - urls = numpy.delete(urls, numpy.where(urls == url), axis=0) - - elif response.status_code == 404: - urls = numpy.delete(urls, numpy.where(urls == url), axis=0) - self.logger.info(f"Not found url: {url}\n") - else: - self.logger.info( - f"Unhandled response code: {response.status_code} {url}\n" - ) - - except Exception as e: - self.logger.info( - f"{url} generated an exception: {traceback.format_exc()}\n" - ) - - attempts += 1 - - self.logger.info( - f"Processed {valid_url_count} urls and got {len(all_data)} data points " - f"in {time.time() - start} seconds thanks to multithreading!\n" - ) - return all_data - - def _eval_json_columns(self, df): - if not len(df): - return df - for column in df.columns: - first_valid_value = df.fillna(method='bfill').iloc[0][column] - if isinstance(first_valid_value, str): - if ( - first_valid_value[0] == '{' and first_valid_value[-1] == '}' - or first_valid_value[0] == '[' and first_valid_value[-1] == ']' - ): - df[column] = df[column].fillna("'null_placeholder'").apply(eval).replace( - "null_placeholder", numpy.nan - ).where(df[column].notna(), lambda x: [{}]) - return df - - def new_organize_needed_data( - self, new_data, augur_table=None, where_clause=True, action_map={} - ): - - self.logger.info(f"Beginning to organize needed data from {len(new_data)} data points...") - - if len(new_data) == 0: - return [], [] - - new_data_columns = pd.DataFrame(new_data).columns - - # # new_data_columns = copy.deepcopy(action_map['insert']['source']) - # table_value_columns = copy.deepcopy(action_map['insert']['augur']) - # - # if 'update' in action_map: - # # new_data_columns += action_map['update']['source'] - # table_value_columns += action_map['update']['augur'] - - (new_data_table, ), metadata, session = self._setup_postgres_merge( - [ - new_data - # self._get_data_set_columns(new_data, new_data_columns) - ] - ) - - need_insertion = pd.DataFrame( - session.query(new_data_table).join( - augur_table, - eval( - ' and '.join( - [ - f"augur_table.c['{table_column}'] == new_data_table.c['{source_column}']" - for table_column, source_column in zip( - action_map['insert']['augur'], action_map['insert']['source'] - ) - ] - ) - ), isouter=True - ).filter( - augur_table.c[action_map['insert']['augur'][0]] == None - ).all(), columns=new_data_columns # table_value_columns - ) - - need_insertion = self._eval_json_columns(need_insertion) - - # new_data_df = pd.DataFrame(new_data) - - # need_insertion, new_data_df = self.sync_df_types( - # need_insertion, new_data_df, table_value_columns, new_data_columns - # ) - # need_insertion = need_insertion.merge( - # new_data_df, how='inner', left_on=table_value_columns, right_on=new_data_columns - # ) - - self.logger.info("need_insertion calculated successfully") - - need_updates = pd.DataFrame(columns=new_data_columns) - if 'update' in action_map: - need_updates = pd.DataFrame( - session.query(new_data_table).join( - augur_table, - s.and_( - eval( - ' and '.join( - [ - ( - f"augur_table.c.{table_column} " - f"== new_data_table.c.{source_column}" - ) for table_column, source_column in zip( - action_map['insert']['augur'], - action_map['insert']['source'] - ) - ] - ) - ), - - eval( - ' and '.join( - [ - ( - f"augur_table.c.{table_column} " - f"!= new_data_table.c.{source_column}" - ) for table_column, source_column in zip( - action_map['update']['augur'], - action_map['update']['source'] - ) - ] - ) - ) - ) - ).all(), columns=new_data_columns - ) - self.logger.info("need_updates calculated successfully") - - self._close_postgres_merge(metadata, session) - - self.logger.info( - f"Table needs {len(need_insertion)} insertions and " - f"{len(need_updates)} updates.\n" - ) - - return need_insertion.to_dict('records'), need_updates.to_dict('records') - - def new_paginate_endpoint( - self, url, action_map={}, table=None, where_clause=True, platform='github' - ): - - page_number = 1 - multiple_pages = False - need_insertion = [] - need_update = [] - all_data = [] - forward_pagination = True - backwards_activation = False - last_page_number = -1 - while True: - - # Multiple attempts to hit endpoint - num_attempts = 0 - success = False - while num_attempts < 10: - self.logger.info("hitting an endpiont") - # f"Hitting endpoint: ...\n" - # f"{url.format(page_number)} on page number. \n") - try: - response = requests.get(url=url.format(page_number), headers=self.headers) - except TimeoutError as e: - self.logger.info("Request timed out. Sleeping 10 seconds and trying again...\n") - time.sleep(10) - continue - - self.update_rate_limit(response, platform=platform) - - try: - page_data = response.json() - except: - page_data = json.loads(json.dumps(response.text)) - - if type(page_data) == list: - success = True - break - elif type(page_data) == dict: - self.logger.info("Request returned a dict: {}\n".format(page_data)) - if page_data['message'] == "Not Found": - self.logger.warning( - "Github repo was not found or does not exist for endpoint: " - f"{url.format(page_number)}\n" - ) - break - if "You have triggered an abuse detection mechanism." in page_data['message']: - num_attempts -= 1 - self.update_rate_limit(response, temporarily_disable=True,platform=platform) - if page_data['message'] == "Bad credentials": - self.update_rate_limit(response, bad_credentials=True, platform=platform) - elif type(page_data) == str: - self.logger.info(f"Warning! page_data was string: {page_data}\n") - if "" in page_data: - self.logger.info("HTML was returned, trying again...\n") - elif len(page_data) == 0: - self.logger.warning("Empty string, trying again...\n") - else: - try: - page_data = json.loads(page_data) - success = True - break - except: - pass - num_attempts += 1 - if not success: - break - - # Success - - # Determine if continued pagination is needed - - if len(page_data) == 0: - self.logger.info("Response was empty, breaking from pagination.\n") - break - - all_data += page_data - - if not forward_pagination: - - # Checking contents of requests with what we already have in the db - page_insertions, page_updates = self.new_organize_needed_data( - page_data, augur_table=table, action_map=action_map - ) - - # Reached a page where we already have all tuples - if len(need_insertion) == 0 and len(need_update) == 0 and \ - backwards_activation: - self.logger.info( - "No more pages with unknown tuples, breaking from pagination.\n" - ) - break - - need_insertion += page_insertions - need_update += page_updates - - # Find last page so we can decrement from there - if 'last' in response.links and last_page_number == -1: - if platform == 'github': - last_page_number = int(response.links['last']['url'][-6:].split('=')[1]) - elif platform == 'gitlab': - last_page_number = int(response.links['last']['url'].split('&')[2].split('=')[1]) - - if not forward_pagination and not backwards_activation: - page_number = last_page_number - backwards_activation = True - - self.logger.info("Analyzation of page {} of {} complete\n".format(page_number, - int(last_page_number) if last_page_number != -1 else "*last page not known*")) - - if (page_number <= 1 and not forward_pagination) or \ - (page_number >= last_page_number and forward_pagination): - self.logger.info("No more pages to check, breaking from pagination.\n") - break - - page_number = page_number + 1 if forward_pagination else page_number - 1 - - if forward_pagination: - need_insertion, need_update = self.new_organize_needed_data( - all_data, augur_table=table, action_map=action_map - ) - - return { - 'insert': need_insertion, - 'update': need_update, - 'all': all_data - } - - def paginate_endpoint( - self, url, action_map={}, table=None, where_clause=True, platform='github', in_memory=True - ): - - table_values = self.db.execute( - s.sql.select(self.get_relevant_columns(table, action_map)).where(where_clause) - ).fetchall() - - page_number = 1 - multiple_pages = False - need_insertion = [] - need_update = [] - all_data = [] - forward_pagination = True - backwards_activation = False - last_page_number = -1 - while True: - - # Multiple attempts to hit endpoint - num_attempts = 0 - success = False - while num_attempts < 10: - self.logger.info(f"Hitting endpoint: {url.format(page_number)}...\n") - try: - response = requests.get(url=url.format(page_number), headers=self.headers) - except TimeoutError as e: - self.logger.info("Request timed out. Sleeping 10 seconds and trying again...\n") - time.sleep(10) - continue - - self.update_rate_limit(response, platform=platform) - - try: - page_data = response.json() - except: - page_data = json.loads(json.dumps(response.text)) - - if type(page_data) == list: - success = True - break - elif type(page_data) == dict: - self.logger.info("Request returned a dict: {}\n".format(page_data)) - if page_data['message'] == "Not Found": - self.logger.warning( - "Github repo was not found or does not exist for endpoint: " - f"{url.format(page_number)}\n" - ) - break - if "You have triggered an abuse detection mechanism." in page_data['message']: - num_attempts -= 1 - self.update_rate_limit(response, temporarily_disable=True,platform=platform) - if page_data['message'] == "Bad credentials": - self.update_rate_limit(response, bad_credentials=True, platform=platform) - elif type(page_data) == str: - self.logger.info(f"Warning! page_data was string: {page_data}\n") - if "" in page_data: - self.logger.info("HTML was returned, trying again...\n") - elif len(page_data) == 0: - self.logger.warning("Empty string, trying again...\n") - else: - try: - page_data = json.loads(page_data) - success = True - break - except: - pass - num_attempts += 1 - if not success: - break - - # Success - - # Determine if continued pagination is needed - - if len(page_data) == 0: - self.logger.info("Response was empty, breaking from pagination.\n") - break - - all_data += page_data - - if not forward_pagination: - - # Checking contents of requests with what we already have in the db - page_insertions, page_updates = self.organize_needed_data( - page_data, table_values, list(table.primary_key)[0].name, - action_map, in_memory=True - ) - - # Reached a page where we already have all tuples - if len(need_insertion) == 0 and len(need_update) == 0 and \ - backwards_activation: - self.logger.info( - "No more pages with unknown tuples, breaking from pagination.\n" - ) - break - - need_insertion += page_insertions - need_update += page_updates - - # Find last page so we can decrement from there - if 'last' in response.links and last_page_number == -1: - if platform == 'github': - last_page_number = int(response.links['last']['url'][-6:].split('=')[1]) - elif platform == 'gitlab': - last_page_number = int(response.links['last']['url'].split('&')[2].split('=')[1]) - - if not forward_pagination and not backwards_activation: - page_number = last_page_number - backwards_activation = True - - self.logger.info("Analyzation of page {} of {} complete\n".format(page_number, - int(last_page_number) if last_page_number != -1 else "*last page not known*")) - - if (page_number <= 1 and not forward_pagination) or \ - (page_number >= last_page_number and forward_pagination): - self.logger.info("No more pages to check, breaking from pagination.\n") - break - - page_number = page_number + 1 if forward_pagination else page_number - 1 - - if forward_pagination: - need_insertion, need_update = self.organize_needed_data( - all_data, table_values, list(table.primary_key)[0].name, action_map, - in_memory=in_memory - ) - - return { - 'insert': need_insertion, - 'update': need_update, - 'all': all_data - } - - def paginate(self, url, duplicate_col_map, update_col_map, table, table_pkey, where_clause="", value_update_col_map={}, platform="github"): - """ DEPRECATED - Paginate either backwards or forwards (depending on the value of the worker's - finishing_task attribute) through all the GitHub or GitLab api endpoint pages. - - :param url: String, the url of the API endpoint we are paginating through, expects - a curly brace string formatter within the string to format the Integer - representing the page number that is wanted to be returned - :param duplicate_col_map: Dictionary, maps the column names of the source data - to the field names in our database for columns that should be checked for - duplicates (if source data value == value in existing database row, then this - element is a duplicate and would not need an insertion). Key is source data - column name, value is database field name. Example: {'id': 'gh_issue_id'} - :param update_col_map: Dictionary, maps the column names of the source data - to the field names in our database for columns that should be checked for - updates (if source data value != value in existing database row, then an - update is needed). Key is source data column name, value is database field name. - Example: {'id': 'gh_issue_id'} - :param table: String, the name of the table that holds the values to check for - duplicates/updates against - :param table_pkey: String, the field name of the primary key of the table in - the database that we are getting the values for to cross-reference to check - for duplicates. - :param where_clause: String, optional where clause to filter the values - that are queried when preparing the values that will be cross-referenced - for duplicates/updates - :param value_update_col_map: Dictionary, sometimes we add a new field to a table, - and we want to trigger an update of that row in the database even if all of the - data values are the same and would not need an update ordinarily. Checking for - a specific existing value in the database field allows us to do this. The key is the - name of the field in the database we are checking for a specific value to trigger - an update, the value is the value we are checking for equality to trigger an update. - Example: {'cntrb_id': None} - :return: List of dictionaries, all data points from the pages of the specified API endpoint - each with a 'flag' key-value pair representing the required action to take with that - data point (i.e. 'need_insertion', 'need_update', 'none') - """ - - update_keys = list(update_col_map.keys()) if update_col_map else [] - update_keys += list(value_update_col_map.keys()) if value_update_col_map else [] - cols_to_query = list(duplicate_col_map.keys()) + update_keys + [table_pkey] - table_values = self.get_table_values(cols_to_query, [table], where_clause) - - i = 1 - multiple_pages = False - tuples = [] - while True: - num_attempts = 0 - success = False - while num_attempts < 3: - self.logger.info(f'Hitting endpoint: {url.format(i)}...\n') - r = requests.get(url=url.format(i), headers=self.headers) - - self.update_rate_limit(r, platform=platform) - if 'last' not in r.links: - last_page = None - else: - if platform == "github": - last_page = r.links['last']['url'][-6:].split('=')[1] - elif platform == "gitlab": - last_page = r.links['last']['url'].split('&')[2].split("=")[1] - self.logger.info("Analyzing page {} of {}\n".format(i, int(last_page) + 1 if last_page is not None else '*last page not known*')) - - try: - j = r.json() - except: - j = json.loads(json.dumps(r.text)) - - if type(j) != dict and type(j) != str: - success = True - break - elif type(j) == dict: - self.logger.info("Request returned a dict: {}\n".format(j)) - if j['message'] == 'Not Found': - self.logger.warning("Github repo was not found or does not exist for endpoint: {}\n".format(url)) - break - if j['message'] == 'You have triggered an abuse detection mechanism. Please wait a few minutes before you try again.': - num_attempts -= 1 - self.logger.info("rate limit update code goes here") - self.update_rate_limit(r, temporarily_disable=True,platform=platform) - if j['message'] == 'Bad credentials': - self.logger.info("rate limit update code goes here") - self.update_rate_limit(r, bad_credentials=True, platform=platform) - elif type(j) == str: - self.logger.info(f'J was string: {j}\n') - if '' in j: - self.logger.info('HTML was returned, trying again...\n') - elif len(j) == 0: - self.logger.warning('Empty string, trying again...\n') - else: - try: - j = json.loads(j) - success = True - break - except: - pass - num_attempts += 1 - if not success: - break - - # Find last page so we can decrement from there - if 'last' in r.links and not multiple_pages and not self.finishing_task: - if platform == "github": - param = r.links['last']['url'][-6:] - i = int(param.split('=')[1]) + 1 - elif platform == "gitlab": - i = int(r.links['last']['url'].split('&')[2].split("=")[1]) + 1 - self.logger.info("Multiple pages of request, last page is " + str(i - 1) + "\n") - multiple_pages = True - elif not multiple_pages and not self.finishing_task: - self.logger.info("Only 1 page of request\n") - elif self.finishing_task: - self.logger.info("Finishing a previous task, paginating forwards ..." - " excess rate limit requests will be made\n") - - if len(j) == 0: - self.logger.info("Response was empty, breaking from pagination.\n") - break - - # Checking contents of requests with what we already have in the db - j = self.assign_tuple_action(j, table_values, update_col_map, duplicate_col_map, table_pkey, value_update_col_map) - - if not j: - self.logger.error("Assigning tuple action failed, moving to next page.\n") - i = i + 1 if self.finishing_task else i - 1 - continue - try: - to_add = [obj for obj in j if obj not in tuples and (obj['flag'] != 'none')] - except Exception as e: - self.logger.error("Failure accessing data of page: {}. Moving to next page.\n".format(e)) - i = i + 1 if self.finishing_task else i - 1 - continue - if len(to_add) == 0 and multiple_pages and 'last' in r.links: - self.logger.info("{}".format(r.links['last'])) - if platform == "github": - page_number = int(r.links['last']['url'][-6:].split('=')[1]) - elif platform == "gitlab": - page_number = int(r.links['last']['url'].split('&')[2].split("=")[1]) - if i - 1 != page_number: - self.logger.info("No more pages with unknown tuples, breaking from pagination.\n") - break - - tuples += to_add - - i = i + 1 if self.finishing_task else i - 1 - - # Since we already wouldve checked the first page... break - if (i == 1 and multiple_pages and not self.finishing_task) or i < 1 or len(j) == 0: - self.logger.info("No more pages to check, breaking from pagination.\n") - break - - return tuples - - def query_github_contributors(self, entry_info, repo_id): - - """ Data collection function - Query the GitHub API for contributors - """ - self.logger.info(f"Querying contributors with given entry info: {entry_info}\n") - - github_url = entry_info['given']['github_url'] if 'github_url' in entry_info['given'] else entry_info['given']['git_url'] - - # Extract owner/repo from the url for the endpoint - owner, name = self.get_owner_repo(github_url) - - # Set the base of the url and place to hold contributors to insert - contributors_url = ( - f"https://api.github.com/repos/{owner}/{name}/" + - "contributors?per_page=100&page={}" - ) - - # Get contributors that we already have stored - # Set our duplicate and update column map keys (something other than PK) to - # check dupicates/needed column updates with - table = 'contributors' - table_pkey = 'cntrb_id' - update_col_map = {'cntrb_email': 'email'} - duplicate_col_map = {'cntrb_login': 'login'} - - #list to hold contributors needing insertion or update - contributors = self.paginate(contributors_url, duplicate_col_map, update_col_map, table, table_pkey) - - self.logger.info("Count of contributors needing insertion: " + str(len(contributors)) + "\n") - - for repo_contributor in contributors: - try: - # Need to hit this single contributor endpoint to get extra data including... - # `created at` - # i think that's it - cntrb_url = ("https://api.github.com/users/" + repo_contributor['login']) - self.logger.info("Hitting endpoint: " + cntrb_url + " ...\n") - r = requests.get(url=cntrb_url, headers=self.headers) - self.update_gh_rate_limit(r) - contributor = r.json() - - company = None - location = None - email = None - if 'company' in contributor: - company = contributor['company'] - if 'location' in contributor: - location = contributor['location'] - if 'email' in contributor: - email = contributor['email'] - canonical_email = contributor['email'] - - cntrb = { - "cntrb_login": contributor['login'], - "cntrb_created_at": contributor['created_at'], - "cntrb_email": email, - "cntrb_company": company, - "cntrb_location": location, - # "cntrb_type": , dont have a use for this as of now ... let it default to null - "cntrb_canonical": canonical_email, - "gh_user_id": contributor['id'], - "gh_login": contributor['login'], - "gh_url": contributor['url'], - "gh_html_url": contributor['html_url'], - "gh_node_id": contributor['node_id'], - "gh_avatar_url": contributor['avatar_url'], - "gh_gravatar_id": contributor['gravatar_id'], - "gh_followers_url": contributor['followers_url'], - "gh_following_url": contributor['following_url'], - "gh_gists_url": contributor['gists_url'], - "gh_starred_url": contributor['starred_url'], - "gh_subscriptions_url": contributor['subscriptions_url'], - "gh_organizations_url": contributor['organizations_url'], - "gh_repos_url": contributor['repos_url'], - "gh_events_url": contributor['events_url'], - "gh_received_events_url": contributor['received_events_url'], - "gh_type": contributor['type'], - "gh_site_admin": contributor['site_admin'], - "tool_source": self.tool_source, - "tool_version": self.tool_version, - "data_source": self.data_source - } - - # Commit insertion to table - if repo_contributor['flag'] == 'need_update': - result = self.db.execute(self.contributors_table.update().where( - self.worker_history_table.c.cntrb_email==email).values(cntrb)) - self.logger.info("Updated tuple in the contributors table with existing email: {}".format(email)) - self.cntrb_id_inc = repo_contributor['pkey'] - elif repo_contributor['flag'] == 'need_insertion': - result = self.db.execute(self.contributors_table.insert().values(cntrb)) - self.logger.info("Primary key inserted into the contributors table: {}".format(result.inserted_primary_key)) - self.results_counter += 1 - - self.logger.info("Inserted contributor: " + contributor['login'] + "\n") - - # Increment our global track of the cntrb id for the possibility of it being used as a FK - self.cntrb_id_inc = int(result.inserted_primary_key[0]) - - except Exception as e: - self.logger.error("Caught exception: {}".format(e)) - self.logger.error("Cascading Contributor Anomalie from missing repo contributor data: {} ...\n".format(cntrb_url)) - continue - - - def query_github_contributors_bulk(self, entry_info, repo_id): - - """ Data collection function - Query the GitHub API for contributors - """ - self.logger.info(f"Querying contributors with given entry info: {entry_info}\n") - - github_url = entry_info['given']['github_url'] if 'github_url' in entry_info['given'] else entry_info['given']['git_url'] - - owner, name = self.get_owner_repo(github_url) - - contributors_url = (f"https://api.github.com/repos/{owner}/{name}/" + - "contributors?per_page=100&page={}") - - action_map = { - 'insert': { - 'source': ['login'], - 'augur': ['cntrb_login'] - }, - 'update': { - 'source': ['email'], - 'augur': ['cntrb_email'] - } - } - - source_contributors = self.paginate_endpoint(contributors_url, action_map=action_map, - table=self.contributors_table) - - contributors_insert = [] - - for repo_contributor in source_contributors['insert']: - # Need to hit this single contributor endpoint to get extra data - cntrb_url = (f"https://api.github.com/users/{repo_contributor['login']}") - self.logger.info(f"Hitting endpoint: {cntrb_url} ...\n") - r = requests.get(url=cntrb_url, headers=self.headers) - self.update_gh_rate_limit(r) - contributor = r.json() - - contributors_insert.append({ - 'cntrb_login': contributor['login'], - 'cntrb_created_at': contributor['created_at'], - 'cntrb_email': contributor['email'] if 'email' in contributor else None, - 'cntrb_company': contributor['company'] if 'company' in contributor else None, - 'cntrb_location': contributor['location'] if 'location' in contributor else None, - 'cntrb_canonical': contributor['email'] if 'email' in contributor else None, - 'gh_user_id': contributor['id'], - 'gh_login': contributor['login'], - 'gh_url': contributor['url'], - 'gh_html_url': contributor['html_url'], - 'gh_node_id': contributor['node_id'], - 'gh_avatar_url': contributor['avatar_url'], - 'gh_gravatar_id': contributor['gravatar_id'], - 'gh_followers_url': contributor['followers_url'], - 'gh_following_url': contributor['following_url'], - 'gh_gists_url': contributor['gists_url'], - 'gh_starred_url': contributor['starred_url'], - 'gh_subscriptions_url': contributor['subscriptions_url'], - 'gh_organizations_url': contributor['organizations_url'], - 'gh_repos_url': contributor['repos_url'], - 'gh_events_url': contributor['events_url'], - 'gh_received_events_url': contributor['received_events_url'], - 'gh_type': contributor['type'], - 'gh_site_admin': contributor['site_admin'], - 'tool_source': self.tool_source, - 'tool_version': self.tool_version, - 'data_source': self.data_source - }) - - contributors_insert_result, contributors_update_result = self.bulk_insert(self.contributors_table, - update=source_contributors['update'], unique_columns=action_map['insert']['augur'], - insert=contributors_insert, update_columns=action_map['update']['augur']) - - def query_github_contributors_fast(self, entry_info, repo_id): - """ Data collection function - Query the GitHub API for contributors - """ - self.logger.info(f"Querying contributors with given entry info: {entry_info}") - - github_url = ( - entry_info['given']['github_url'] if 'github_url' in entry_info['given'] - else entry_info['given']['git_url'] - ) - - contributors_url = ( - f"https://api.github.com/repos/{self.owner}/{self.name}/" - "contributors?per_page=100&page={}" - ) - - action_map = { - 'insert': { - 'source': ['login'], - 'augur': ['cntrb_login'] - }, - 'update': { - 'source': ['email'], - 'augur': ['cntrb_email'] - } - } - - source_contributors = self.paginate_endpoint( - contributors_url, action_map=action_map, table=self.contributors_table - ) - - contributors_insert = [ - { - 'cntrb_login': contributor['login'], - 'cntrb_created_at': ( - contributor['created_at'] if 'created_at' in contributor else None - ), - 'cntrb_email': contributor['email'] if 'email' in contributor else None, - 'cntrb_company': contributor['company'] if 'company' in contributor else None, - 'cntrb_location': contributor['location'] if 'location' in contributor else None, - 'cntrb_canonical': contributor['email'] if 'email' in contributor else None, - 'gh_user_id': contributor['id'], - 'gh_login': contributor['login'], - 'gh_url': contributor['url'], - 'gh_html_url': contributor['html_url'], - 'gh_node_id': contributor['node_id'], - 'gh_avatar_url': contributor['avatar_url'], - 'gh_gravatar_id': contributor['gravatar_id'], - 'gh_followers_url': contributor['followers_url'], - 'gh_following_url': contributor['following_url'], - 'gh_gists_url': contributor['gists_url'], - 'gh_starred_url': contributor['starred_url'], - 'gh_subscriptions_url': contributor['subscriptions_url'], - 'gh_organizations_url': contributor['organizations_url'], - 'gh_repos_url': contributor['repos_url'], - 'gh_events_url': contributor['events_url'], - 'gh_received_events_url': contributor['received_events_url'], - 'gh_type': contributor['type'], - 'gh_site_admin': contributor['site_admin'], - 'tool_source': self.tool_source, - 'tool_version': self.tool_version, - 'data_source': self.data_source - } for contributor in source_contributors['insert'] - ] - - self.bulk_insert( - self.contributors_table, update=source_contributors['update'], - unique_columns=action_map['insert']['augur'], - insert=contributors_insert, update_columns=action_map['update']['augur'] - ) - - def query_gitlab_contribtutors(self, entry_info, repo_id): - - gitlab_url = ( - entry_info['given']['gitlab_url'] if 'gitlab_url' in entry_info['given'] - else entry_info['given']['git_url'] - ) - - self.logger.info("Querying contributors with given entry info: " + str(entry_info) + "\n") - - path = urlparse(gitlab_url) - split = path[2].split('/') - - owner = split[1] - name = split[2] - - # Handles git url case by removing the extension - if ".git" in name: - name = name[:-4] - - url_encoded_format = quote(owner + '/' + name, safe='') - - table = 'contributors' - table_pkey = 'cntrb_id' - ### %TODO Remap this to a GitLab Contributor ID like the GitHub Worker. - ### Following Gabe's rework of the contributor worker. - update_col_map = {'cntrb_email': 'email'} - duplicate_col_map = {'cntrb_login': 'email'} - - # list to hold contributors needing insertion or update - contributors = self.paginate("https://gitlab.com/api/v4/projects/" + url_encoded_format + "/repository/contributors?per_page=100&page={}", duplicate_col_map, update_col_map, table, table_pkey, platform='gitlab') - - for repo_contributor in contributors: - try: - cntrb_compressed_url = ("https://gitlab.com/api/v4/users?search=" + repo_contributor['email']) - self.logger.info("Hitting endpoint: " + cntrb_compressed_url + " ...\n") - r = requests.get(url=cntrb_compressed_url, headers=self.headers) - contributor_compressed = r.json() - - email = repo_contributor['email'] - self.logger.info(contributor_compressed) - if len(contributor_compressed) == 0 or type(contributor_compressed) is dict or "id" not in contributor_compressed[0]: - continue - - self.logger.info("Fetching for user: " + str(contributor_compressed[0]["id"])) - - cntrb_url = ("https://gitlab.com/api/v4/users/" + str(contributor_compressed[0]["id"])) - self.logger.info("Hitting end point to get complete contributor info now: " + cntrb_url + "...\n") - r = requests.get(url=cntrb_url, headers=self.headers) - contributor = r.json() - - cntrb = { - "cntrb_login": contributor.get('username', None), - "cntrb_created_at": contributor.get('created_at', None), - "cntrb_email": email, - "cntrb_company": contributor.get('organization', None), - "cntrb_location": contributor.get('location', None), - # "cntrb_type": , dont have a use for this as of now ... let it default to null - "cntrb_canonical": contributor.get('public_email', None), - "gh_user_id": contributor.get('id', None), - "gh_login": contributor.get('username', None), - "gh_url": contributor.get('web_url', None), - "gh_html_url": contributor.get('web_url', None), - "gh_node_id": None, - "gh_avatar_url": contributor.get('avatar_url', None), - "gh_gravatar_id": None, - "gh_followers_url": None, - "gh_following_url": None, - "gh_gists_url": None, - "gh_starred_url": None, - "gh_subscriptions_url": None, - "gh_organizations_url": None, - "gh_repos_url": None, - "gh_events_url": None, - "gh_received_events_url": None, - "gh_type": None, - "gh_site_admin": None, - "tool_source": self.tool_source, - "tool_version": self.tool_version, - "data_source": self.data_source - } - - # Commit insertion to table - if repo_contributor['flag'] == 'need_update': - result = self.db.execute(self.contributors_table.update().where( - self.worker_history_table.c.cntrb_email == email).values(cntrb)) - self.logger.info("Updated tuple in the contributors table with existing email: {}".format(email)) - self.cntrb_id_inc = repo_contributor['pkey'] - elif repo_contributor['flag'] == 'need_insertion': - result = self.db.execute(self.contributors_table.insert().values(cntrb)) - self.logger.info("Primary key inserted into the contributors table: {}".format(result.inserted_primary_key)) - self.results_counter += 1 - - self.logger.info("Inserted contributor: " + contributor['username'] + "\n") - - # Increment our global track of the cntrb id for the possibility of it being used as a FK - self.cntrb_id_inc = int(result.inserted_primary_key[0]) - - except Exception as e: - self.logger.info("Caught exception: {}".format(e)) - self.logger.info("Cascading Contributor Anomalie from missing repo contributor data: {} ...\n".format(cntrb_url)) - continue - def record_model_process(self, repo_id, model): + self.logger.info(f"This is the oauths 0 index {self.oauths[0]}") task_history = { "repo_id": repo_id, "worker": self.config['id'], @@ -2606,211 +505,3 @@ def register_task_failure(self, task, repo_id, e): # Reset results counter for next task self.results_counter = 0 - - def get_relevant_columns(self, table, action_map={}): - columns = copy.deepcopy(action_map['update']['augur']) if 'update' in action_map else [] - columns += action_map['value_update']['augur'] if 'value_update' in action_map else [] - columns += action_map['insert']['augur'] if 'insert' in action_map else [] - return [table.c[column] for column in - columns + [list(table.primary_key)[0].name]] - - def retrieve_tuple(self, key_values, tables): - table_str = tables[0] - del tables[0] - - key_values_items = list(key_values.items()) - for col, value in [key_values_items[0]]: - where_str = col + " = '" + value + "'" - del key_values_items[0] - - for col, value in key_values_items: - where_str += ' AND ' + col + " = '" + value + "'" - for table in tables: - table_str += ", " + table - - retrieveTupleSQL = s.sql.text(""" - SELECT * FROM {} WHERE {} - """.format(table_str, where_str)) - values = json.loads( - pd.read_sql(retrieveTupleSQL, self.db, params={}).to_json(orient="records") - ) - return values - - def update_gitlab_rate_limit(self, response, bad_credentials=False, temporarily_disable=False): - # Try to get rate limit from request headers, sometimes it does not work (GH's issue) - # In that case we just decrement from last recieved header count - if bad_credentials and len(self.oauths) > 1: - self.logger.info( - f"Removing oauth with bad credentials from consideration: {self.oauths[0]}" - ) - del self.oauths[0] - - if temporarily_disable: - self.logger.info("Gitlab rate limit reached. Temp. disabling...") - self.oauths[0]['rate_limit'] = 0 - else: - try: - self.oauths[0]['rate_limit'] = int(response.headers['RateLimit-Remaining']) - except: - self.oauths[0]['rate_limit'] -= 1 - self.logger.info("Updated rate limit, you have: " + - str(self.oauths[0]['rate_limit']) + " requests remaining.") - if self.oauths[0]['rate_limit'] <= 0: - try: - reset_time = response.headers['RateLimit-Reset'] - except Exception as e: - self.logger.info(f"Could not get reset time from headers because of error: {e}") - reset_time = 3600 - time_diff = datetime.datetime.fromtimestamp(int(reset_time)) - datetime.datetime.now() - self.logger.info("Rate limit exceeded, checking for other available keys to use.") - - # We will be finding oauth with the highest rate limit left out of our list of oauths - new_oauth = self.oauths[0] - # Endpoint to hit solely to retrieve rate limit information from headers of the response - url = "https://gitlab.com/api/v4/version" - - other_oauths = self.oauths[0:] if len(self.oauths) > 1 else [] - for oauth in other_oauths: - # self.logger.info("Inspecting rate limit info for oauth: {}\n".format(oauth)) - self.headers = {"PRIVATE-TOKEN" : oauth['access_token']} - response = requests.get(url=url, headers=self.headers) - oauth['rate_limit'] = int(response.headers['RateLimit-Remaining']) - oauth['seconds_to_reset'] = ( - datetime.datetime.fromtimestamp( - int(response.headers['RateLimit-Reset']) - ) - datetime.datetime.now() - ).total_seconds() - - # Update oauth to switch to if a higher limit is found - if oauth['rate_limit'] > new_oauth['rate_limit']: - self.logger.info(f"Higher rate limit found in oauth: {oauth}") - new_oauth = oauth - elif ( - oauth['rate_limit'] == new_oauth['rate_limit'] - and oauth['seconds_to_reset'] < new_oauth['seconds_to_reset'] - ): - self.logger.info( - f"Lower wait time found in oauth with same rate limit: {oauth}" - ) - new_oauth = oauth - - if new_oauth['rate_limit'] <= 0 and new_oauth['seconds_to_reset'] > 0: - self.logger.info( - "No oauths with >0 rate limit were found, waiting for oauth with " - f"smallest wait time: {new_oauth}\n" - ) - time.sleep(new_oauth['seconds_to_reset']) - - # Make new oauth the 0th element in self.oauths so we know which one is in use - index = self.oauths.index(new_oauth) - self.oauths[0], self.oauths[index] = self.oauths[index], self.oauths[0] - self.logger.info("Using oauth: {}\n".format(self.oauths[0])) - - # Change headers to be using the new oauth's key - self.headers = {"PRIVATE-TOKEN" : self.oauths[0]['access_token']} - - - def update_gh_rate_limit(self, response, bad_credentials=False, temporarily_disable=False): - # Try to get rate limit from request headers, sometimes it does not work (GH's issue) - # In that case we just decrement from last recieved header count - if bad_credentials and len(self.oauths) > 1: - self.logger.warning( - f"Removing oauth with bad credentials from consideration: {self.oauths[0]}" - ) - del self.oauths[0] - - if temporarily_disable: - self.logger.debug( - "Github thinks we are abusing their api. Preventing use " - "of this key until its rate limit resets..." - ) - self.oauths[0]['rate_limit'] = 0 - else: - try: - self.oauths[0]['rate_limit'] = int(response.headers['X-RateLimit-Remaining']) - # self.logger.info("Recieved rate limit from headers\n") - except: - self.oauths[0]['rate_limit'] -= 1 - self.logger.info("Headers did not work, had to decrement") - self.logger.info( - f"Updated rate limit, you have: {self.oauths[0]['rate_limit']} requests remaining." - ) - if self.oauths[0]['rate_limit'] <= 0: - try: - reset_time = response.headers['X-RateLimit-Reset'] - except Exception as e: - self.logger.error(f"Could not get reset time from headers because of error: {e}") - reset_time = 3600 - time_diff = datetime.datetime.fromtimestamp(int(reset_time)) - datetime.datetime.now() - self.logger.info("Rate limit exceeded, checking for other available keys to use.") - - # We will be finding oauth with the highest rate limit left out of our list of oauths - new_oauth = self.oauths[0] - # Endpoint to hit solely to retrieve rate limit information from headers of the response - url = "https://api.github.com/users/gabe-heim" - - other_oauths = self.oauths[0:] if len(self.oauths) > 1 else [] - for oauth in other_oauths: - # self.logger.info("Inspecting rate limit info for oauth: {}\n".format(oauth)) - self.headers = {'Authorization': 'token %s' % oauth['access_token']} - - attempts = 3 - success = False - while attempts > 0 and not success: - response = requests.get(url=url, headers=self.headers) - try: - oauth['rate_limit'] = int(response.headers['X-RateLimit-Remaining']) - oauth['seconds_to_reset'] = ( - datetime.datetime.fromtimestamp( - int(response.headers['X-RateLimit-Reset']) - ) - datetime.datetime.now() - ).total_seconds() - success = True - except Exception as e: - self.logger.info( - f"oath method ran into error getting info from headers: {e}\n" - ) - self.logger.info(f"{self.headers}\n{url}\n") - attempts -= 1 - if not success: - continue - - # Update oauth to switch to if a higher limit is found - if oauth['rate_limit'] > new_oauth['rate_limit']: - self.logger.info("Higher rate limit found in oauth: {}\n".format(oauth)) - new_oauth = oauth - elif ( - oauth['rate_limit'] == new_oauth['rate_limit'] - and oauth['seconds_to_reset'] < new_oauth['seconds_to_reset'] - ): - self.logger.info( - f"Lower wait time found in oauth with same rate limit: {oauth}\n" - ) - new_oauth = oauth - - if new_oauth['rate_limit'] <= 0 and new_oauth['seconds_to_reset'] > 0: - self.logger.info( - "No oauths with >0 rate limit were found, waiting for oauth with " - f"smallest wait time: {new_oauth}\n" - ) - time.sleep(new_oauth['seconds_to_reset']) - - # Make new oauth the 0th element in self.oauths so we know which one is in use - index = self.oauths.index(new_oauth) - self.oauths[0], self.oauths[index] = self.oauths[index], self.oauths[0] - self.logger.info("Using oauth: {}\n".format(self.oauths[0])) - - # Change headers to be using the new oauth's key - self.headers = {'Authorization': 'token %s' % self.oauths[0]['access_token']} - - def update_rate_limit( - self, response, bad_credentials=False, temporarily_disable=False, platform="gitlab" - ): - if platform == 'gitlab': - return self.update_gitlab_rate_limit( - response, bad_credentials=bad_credentials, temporarily_disable=temporarily_disable - ) - elif platform == 'github': - return self.update_gh_rate_limit( - response, bad_credentials=bad_credentials, temporarily_disable=temporarily_disable - ) diff --git a/workers/worker_git_integration.py b/workers/worker_git_integration.py new file mode 100644 index 0000000000..0d66415dea --- /dev/null +++ b/workers/worker_git_integration.py @@ -0,0 +1,1836 @@ +#Get everything that the base depends on. +from numpy.lib.utils import source +from workers.worker_base import * +import sqlalchemy as s + +#This is a worker base subclass that adds the ability to query github/gitlab with the api key +class WorkerGitInterfaceable(Worker): + def __init__(self, worker_type, config={}, given=[], models=[], data_tables=[], operations_tables=[], platform="github"): + super().__init__(worker_type, config, given, models, data_tables, operations_tables) + + self.config.update({ + 'gh_api_key': self.augur_config.get_value('Database', 'key'), + 'gitlab_api_key': self.augur_config.get_value('Database', 'gitlab_api_key') + }) + + #Fix loose attribute definition + self.headers = None + self.platform = platform + self.given = given + self.models = models + + self.specs = { + 'id': self.config['id'], # what the broker knows this worker as + 'location': self.config['location'], # host + port worker is running on (so broker can send tasks here) + 'qualifications': [ + { + 'given': self.given, # type of repo this worker can be given as a task + 'models': self.models # models this worker can fill for a repo as a task + } + ], + 'config': self.config + } + + # Send broker hello message + if self.config['offline_mode'] is False: + self.connect_to_broker() + + # Attempts to determine if these attributes exist + # If not, it creates them with default values + try: + self.tool_source + self.tool_version + self.data_source + except AttributeError: + self.tool_source = 'Augur Worker Testing' + self.tool_version = '0.0.0' + self.data_source = 'Augur Worker Testing' + + #database interface, additional functionality with github interface. + def initialize_database_connections(self): + super().initialize_database_connections() + # Organize different api keys/oauths available + self.logger.info("Initializing API key.") + if 'gh_api_key' in self.config or 'gitlab_api_key' in self.config: + try: + self.init_oauths(self.platform) + except AttributeError: + self.logger.error("Worker not configured to use API key!") + else: + self.oauths = [{'oauth_id': 0}] + + def find_id_from_login(self, login, platform='github'): + """ Retrieves our contributor table primary key value for the contributor with + the given GitHub login credentials, if this contributor is not there, then + they get inserted. + + :param login: String, the GitHub login username to find the primary key id for + :return: Integer, the id of the row in our database with the matching GitHub login + """ + idSQL = s.sql.text(""" + SELECT cntrb_id FROM contributors WHERE cntrb_login = '{}' \ + AND LOWER(data_source) = '{} api' + """.format(login, platform)) + + rs = pd.read_sql(idSQL, self.db, params={}) + data_list = [list(row) for row in rs.itertuples(index=False)] + try: + return data_list[0][0] + except: + self.logger.info('contributor needs to be added...') + + if platform == 'github': + cntrb_url = ("https://api.github.com/users/" + login) + elif platform == 'gitlab': + cntrb_url = ("https://gitlab.com/api/v4/users?username=" + login ) + self.logger.info("Hitting endpoint: {} ...\n".format(cntrb_url)) + + # Possible infinite loop if this request never succeeds? + while True: + try: + r = requests.get(url=cntrb_url, headers=self.headers) + break + except TimeoutError as e: + self.logger.info("Request timed out. Sleeping 10 seconds and trying again...\n") + time.sleep(30) + + self.update_rate_limit(r) + contributor = r.json() + + # Used primarily for the Gitlab block below + company = None + location = None + email = None + if 'company' in contributor: + company = contributor['company'] + if 'location' in contributor: + location = contributor['location'] + if 'email' in contributor: + email = contributor['email'] + + + if platform == 'github': + cntrb = { + 'cntrb_login': contributor['login'] if 'login' in contributor else None, + 'cntrb_email': contributor['email'] if 'email' in contributor else None, + 'cntrb_company': contributor['company'] if 'company' in contributor else None, + 'cntrb_location': contributor['location'] if 'location' in contributor else None, + 'cntrb_created_at': contributor['created_at'] if 'created_at' in contributor else None, + 'cntrb_canonical': None, + 'gh_user_id': contributor['id'] if 'id' in contributor else None, + 'gh_login': contributor['login'] if 'login' in contributor else None, + 'gh_url': contributor['url'] if 'url' in contributor else None, + 'gh_html_url': contributor['html_url'] if 'html_url' in contributor else None, + 'gh_node_id': contributor['node_id'] if 'node_id' in contributor else None, + 'gh_avatar_url': contributor['avatar_url'] if 'avatar_url' in contributor else None, + 'gh_gravatar_id': contributor['gravatar_id'] if 'gravatar_id' in contributor else None, + 'gh_followers_url': contributor['followers_url'] if 'followers_url' in contributor else None, + 'gh_following_url': contributor['following_url'] if 'following_url' in contributor else None, + 'gh_gists_url': contributor['gists_url'] if 'gists_url' in contributor else None, + 'gh_starred_url': contributor['starred_url'] if 'starred_url' in contributor else None, + 'gh_subscriptions_url': contributor['subscriptions_url'] if 'subscriptions_url' in contributor else None, + 'gh_organizations_url': contributor['organizations_url'] if 'organizations_url' in contributor else None, + 'gh_repos_url': contributor['repos_url'] if 'repos_url' in contributor else None, + 'gh_events_url': contributor['events_url'] if 'events_url' in contributor else None, + 'gh_received_events_url': contributor['received_events_url'] if 'received_events_url' in contributor else None, + 'gh_type': contributor['type'] if 'type' in contributor else None, + 'gh_site_admin': contributor['site_admin'] if 'site_admin' in contributor else None, + 'tool_source': self.tool_source, + 'tool_version': self.tool_version, + 'data_source': self.data_source + } + + elif platform == 'gitlab': + cntrb = { + 'cntrb_login': contributor[0]['username'] if 'username' in contributor[0] else None, + 'cntrb_email': email, + 'cntrb_company': company, + 'cntrb_location': location, + 'cntrb_created_at': contributor[0]['created_at'] if 'created_at' in contributor[0] else None, + 'cntrb_canonical': None, + 'gh_user_id': contributor[0]['id'], + 'gh_login': contributor[0]['username'], + 'gh_url': contributor[0]['web_url'], + 'gh_html_url': None, + 'gh_node_id': None, + 'gh_avatar_url': contributor[0]['avatar_url'], + 'gh_gravatar_id': None, + 'gh_followers_url': None, + 'gh_following_url': None, + 'gh_gists_url': None, + 'gh_starred_url': None, + 'gh_subscriptions_url': None, + 'gh_organizations_url': None, + 'gh_repos_url': None, + 'gh_events_url': None, + 'gh_received_events_url': None, + 'gh_type': None, + 'gh_site_admin': None, + 'tool_source': self.tool_source, + 'tool_version': self.tool_version, + 'data_source': self.data_source + } + result = self.db.execute(self.contributors_table.insert().values(cntrb)) + self.logger.info("Primary key inserted into the contributors table: " + str(result.inserted_primary_key)) + self.results_counter += 1 + self.cntrb_id_inc = int(result.inserted_primary_key[0]) + self.logger.info(f"Inserted contributor: {cntrb['cntrb_login']}\n") + + return self.find_id_from_login(login, platform) + + #Blatently only for api key usage + def init_oauths(self, platform='github'): + + self.oauths = [] + self.headers = None + self.logger.info("Trying initialization.") + # Make a list of api key in the config combined w keys stored in the database + # Select endpoint to hit solely to retrieve rate limit + # information from headers of the response + # Adjust header keys needed to fetch rate limit information from the API responses + if platform == 'github': + url = "https://api.github.com/users/gabe-heim" + oauthSQL = s.sql.text(""" + SELECT * FROM worker_oauth WHERE access_token <> '{}' and platform = 'github' + """.format(self.config['gh_api_key'])) + key_name = 'gh_api_key' + rate_limit_header_key = "X-RateLimit-Remaining" + rate_limit_reset_header_key = "X-RateLimit-Reset" + elif platform == 'gitlab': + url = "https://gitlab.com/api/v4/version" + oauthSQL = s.sql.text(""" + SELECT * FROM worker_oauth WHERE access_token <> '{}' and platform = 'gitlab' + """.format(self.config['gitlab_api_key'])) + key_name = 'gitlab_api_key' + rate_limit_header_key = 'ratelimit-remaining' + rate_limit_reset_header_key = 'ratelimit-reset' + + for oauth in [{'oauth_id': 0, 'access_token': self.config[key_name]}] + json.loads( + pd.read_sql(oauthSQL, self.helper_db, params={}).to_json(orient="records") + ): + if platform == 'github': + self.headers = {'Authorization': 'token %s' % oauth['access_token']} + elif platform == 'gitlab': + self.headers = {'Authorization': 'Bearer %s' % oauth['access_token']} + response = requests.get(url=url, headers=self.headers) + self.oauths.append({ + 'oauth_id': oauth['oauth_id'], + 'access_token': oauth['access_token'], + 'rate_limit': int(response.headers[rate_limit_header_key]), + 'seconds_to_reset': ( + datetime.datetime.fromtimestamp( + int(response.headers[rate_limit_reset_header_key]) + ) - datetime.datetime.now() + ).total_seconds() + }) + self.logger.debug("Found OAuth available for use: {}".format(self.oauths[-1])) + + if len(self.oauths) == 0: + self.logger.info( + "No API keys detected, please include one in your config or in the " + "worker_oauths table in the augur_operations schema of your database." + ) + + # First key to be used will be the one specified in the config (first element in + # self.oauths array will always be the key in use) + if platform == 'github': + self.headers = {'Authorization': 'token %s' % self.oauths[0]['access_token']} + elif platform == 'gitlab': + self.headers = {'Authorization': 'Bearer %s' % self.oauths[0]['access_token']} + + self.logger.info("OAuth initialized\n") + + def enrich_cntrb_id( + self, data, key, action_map_additions={'insert': {'source': [], 'augur': []}}, + platform='github', prefix='' + ): + + if not len(data): + self.logger.info(f"Enrich contrib data is empty for {len(data)}, for the key {key}.") + + raise ValueError + + self.logger.info(f"Enriching contributor ids for {len(data)} data points...") + + source_df = pd.DataFrame(data) + expanded_source_df = self._add_nested_columns( + source_df.copy(), [key] + action_map_additions['insert']['source'] + ) + + # Insert cntrbs that are not in db + + cntrb_action_map = { + 'insert': { + 'source': [key] + action_map_additions['insert']['source'] + [f'{prefix}id'], + 'augur': ['cntrb_login'] + action_map_additions['insert']['augur'] + ['gh_user_id'] + } + } + + table_values_cntrb = self.db.execute( + s.sql.select(self.get_relevant_columns(self.contributors_table,cntrb_action_map)) + ).fetchall() + + source_data = expanded_source_df.to_dict(orient='records') + + #Filter out bad data where we can't even hit the api. + source_data = [data for data in source_data if f'{prefix}login' in data and data[f'{prefix}login'] != None] + + self.logger.info(f"table_values_cntrb keys: {table_values_cntrb[0].keys()}") + self.logger.info(f"source_data keys: {source_data[0].keys()}") + + #We can't use this because of worker collisions + #TODO: seperate this method into it's own worker. + #cntrb_id_offset = self.get_max_id(self.contributors_table, 'cntrb_id') - 1 + + # loop through data to test if it is already in the database + for index, data in enumerate(source_data): + + self.logger.info(f"Enriching {index} of {len(source_data)}") + + + user_unique_ids = [] + + #Allow for alt identifiers to be checked if user.id is not present in source_data + try: + #This will trigger a KeyError if data has alt identifier. + data[f'{prefix}id'] + for row in table_values_cntrb: + try: + user_unique_ids.append(row['gh_user_id']) + except Exception as e: + self.logger.info(f"Error adding gh_user_id: {e}. Row: {row}") + except KeyError: + self.logger.info("Source data doesn't have user.id. Using node_id instead.") + for row in table_values_cntrb: + try: + user_unique_ids.append(row['gh_node_id']) + except Exception as e: + self.logger.info(f"Error adding gh_node_id: {e}. Row: {row}") + + + #self.logger.info(f"gh_user_ids: {gh_user_ids}") + + # self.logger.info(f"Users gh_user_id: {data['user.id']}") + # in_user_ids = False + # if data['user.id'] in gh_user_ids: + # in_user_ids = True + # self.logger.info(f"{data['user.id']} is in gh_user_ids") + + # self.logger.info(f"table_values_cntrb len: {len(table_values_cntrb)}") + + #Deal with if data + #See if we can check using the user.id + source_data_id = None + try: + source_data_id = data[f'{prefix}id'] + except KeyError: + source_data_id = data[f'{prefix}node_id'] + + + #if user.id is in the database then there is no need to add the contributor + if source_data_id in user_unique_ids: + + self.logger.info("{} found in database".format(source_data_id)) + + user_id_row = [] + try: + data[f'{prefix}id'] + #gets the dict from the table_values_cntrb that contains data['user.id'] + user_id_row = list(filter(lambda x: x['gh_user_id'] == source_data_id, table_values_cntrb))[0] + except KeyError: + user_id_row = list(filter(lambda x: x['gh_node_id'] == source_data_id, table_values_cntrb))[0] + + + #assigns the cntrb_id to the source data to be returned to the workers + data['cntrb_id'] = user_id_row['cntrb_id'] + self.logger.info(f"cntrb_id {data['cntrb_id']} found in database and assigned to enriched data") + + #contributor is not in the database + else: + + self.logger.info("{} not in database, making api call".format(source_data_id)) + + self.logger.info("login: {}".format(data[f'{prefix}login'])) + + try: + url = ("https://api.github.com/users/" + data[f'{prefix}login']) + except Exception as e: + self.logger.info(f"Error when creating url: {e}. Data: {data}") + + attempts = 0 + + try: + while attempts < 10: + try: + self.logger.info("Hitting endpoint: " + url + " ...\n") + response = requests.get(url=url , headers=self.headers) + break + except TimeoutError: + self.logger.info(f"User data request for enriching contributor data failed with {attempts} attempts! Trying again...") + time.sleep(10) + + attempts += 1 + except Exception as e: + raise e + + try: + contributor = response.json() + except: + contributor = json.loads(json.dumps(response.text)) + + self.logger.info(f"Contributor data: {contributor}") + + cntrb = { + "cntrb_login": contributor['login'], + "cntrb_created_at": contributor['created_at'], + "cntrb_email": contributor['email'] if 'email' in contributor else None, + "cntrb_company": contributor['company'] if 'company' in contributor else None, + "cntrb_location": contributor['location'] if 'location' in contributor else None, + # "cntrb_type": , dont have a use for this as of now ... let it default to null + "cntrb_canonical": contributor['email'] if 'email' in contributor else None, + "gh_user_id": contributor['id'], + "gh_login": contributor['login'], + "gh_url": contributor['url'], + "gh_html_url": contributor['html_url'], + "gh_node_id": contributor['node_id'], + "gh_avatar_url": contributor['avatar_url'], + "gh_gravatar_id": contributor['gravatar_id'], + "gh_followers_url": contributor['followers_url'], + "gh_following_url": contributor['following_url'], + "gh_gists_url": contributor['gists_url'], + "gh_starred_url": contributor['starred_url'], + "gh_subscriptions_url": contributor['subscriptions_url'], + "gh_organizations_url": contributor['organizations_url'], + "gh_repos_url": contributor['repos_url'], + "gh_events_url": contributor['events_url'], + "gh_received_events_url": contributor['received_events_url'], + "gh_type": contributor['type'], + "gh_site_admin": contributor['site_admin'], + "tool_source": self.tool_source, + "tool_version": self.tool_version, + "data_source": self.data_source + } + + #insert new contributor into database + # TODO: make this method it's own worker. This errors because of collisions between github_worker and pull_request_worker. + #We can solve this by making another worker with a queue. It wouldn't have to be too complicated. + try: + self.db.execute(self.contributors_table.insert().values(cntrb)) + # except s.exc.IntegrityError: + except Exception as e: + self.logger.info(f"Contributor was unable to be added to table! Attempting to get cntrb_id from table anyway because of possible collision. Error: {e}") + + + #Get the contributor id from the newly inserted contributor. + cntrb_id_row = self.db.execute( + s.sql.select(self.get_relevant_columns(self.contributors_table,cntrb_action_map)).where( + self.contributors_table.c.gh_user_id==cntrb["gh_user_id"] + ) + ).fetchall() + + #Handle and log rare failure cases. If this part errors something is very wrong. + if len(cntrb_id_row) == 1: + data['cntrb_id'] = cntrb_id_row[0]['cntrb_id'] + self.logger.info(f"cntrb_id {data['cntrb_id']} found in database and assigned to enriched data") + elif len(cntrb_id_row) == 0: + self.logger.error("Couldn't find contributor in database. Something has gone very wrong. Augur ran into a contributor that is unable to be inserted into the contributors table but is also not present in that table.") + else: + self.logger.info(f"There are more than one contributors in the table with gh_user_id={cntrb['gh_user_id']}") + + + cntrb_data = { + 'cntrb_id': data['cntrb_id'], + 'gh_node_id': cntrb['gh_node_id'], + 'cntrb_login': cntrb['cntrb_login'], + 'gh_user_id': cntrb['gh_user_id'] + } + #This updates our list of who is already in the database as we iterate to avoid duplicates. + #People who make changes tend to make more than one in a row. + table_values_cntrb.append(cntrb_data) + + self.logger.info( + "Contributor id enrichment successful, result has " + f"{len(source_data)} data points.\n" + ) + return source_data + + + + + #old method + """ + # source_cntrb_insert, _ = self.organize_needed_data( + # expanded_source_df.to_dict(orient='records'), table_values=table_values_cntrb, + # action_map=cntrb_action_map + # ) + + # cntrb_insert = [ + # { + # 'cntrb_login': contributor[f'{prefix}login'], + # 'cntrb_created_at': None if ( + # f'{prefix}created_at' not in contributor + # ) else contributor[f'{prefix}created_at'], + # 'cntrb_email': None if f'{prefix}email' not in contributor else contributor[f'{prefix}email'], + # 'cntrb_company': None if f'{prefix}company' not in contributor else contributor[f'{prefix}company'], + # 'cntrb_location': None if ( + # f'{prefix}location' not in contributor + # ) else contributor[f'{prefix}location'], + # 'gh_user_id': None if ( + # not contributor[f'{prefix}id'] + # ) else int(float(contributor[f'{prefix}id'])), + # 'gh_login': contributor[f'{prefix}login'], + # 'gh_url': contributor[f'{prefix}url'], + # 'gh_html_url': contributor[f'{prefix}html_url'], + # 'gh_node_id': contributor[f'{prefix}node_id'], #valid for dup check + # 'gh_avatar_url': contributor[f'{prefix}avatar_url'], + # 'gh_gravatar_id': contributor[f'{prefix}gravatar_id'], + # 'gh_followers_url': contributor[f'{prefix}followers_url'], + # 'gh_following_url': contributor[f'{prefix}following_url'], + # 'gh_gists_url': contributor[f'{prefix}gists_url'], + # 'gh_starred_url': contributor[f'{prefix}starred_url'], + # 'gh_subscriptions_url': contributor[f'{prefix}subscriptions_url'], + # 'gh_organizations_url': contributor[f'{prefix}organizations_url'], + # 'gh_repos_url': contributor[f'{prefix}repos_url'], + # 'gh_events_url': contributor[f'{prefix}events_url'], + # 'gh_received_events_url': contributor[f'{prefix}received_events_url'], + # 'gh_type': contributor[f'{prefix}type'], + # 'gh_site_admin': contributor[f'{prefix}site_admin'], + # 'tool_source': self.tool_source, + # 'tool_version': self.tool_version, + # 'data_source': self.data_source + # } for contributor in source_cntrb_insert if contributor[f'{prefix}login'] + # ] + # + # try: + # self.bulk_insert(self.contributors_table, cntrb_insert) + # except s.exc.IntegrityError: + # self.logger.info("Unique Violation in contributors table! ") + # + # # Query db for inserted cntrb pkeys and add to shallow level of data + # + # # Query + # cntrb_pk_name = list(self.contributors_table.primary_key)[0].name + # session = s.orm.Session(self.db) + # inserted_pks = pd.DataFrame( + # session.query( + # self.contributors_table.c[cntrb_pk_name], self.contributors_table.c.cntrb_login, + # self.contributors_table.c.gh_node_id + # ).distinct(self.contributors_table.c.cntrb_login).order_by( + # self.contributors_table.c.cntrb_login, self.contributors_table.c[cntrb_pk_name] + # ).all(), columns=[cntrb_pk_name, 'cntrb_login', 'gh_node_id'] + # ).to_dict(orient='records') + # session.close() + # + # # Prepare for merge + # source_columns = sorted(list(source_df.columns)) + # necessary_columns = sorted(list(set(source_columns + cntrb_action_map['insert']['source']))) + # (source_table, inserted_pks_table), metadata, session = self._setup_postgres_merge( + # [ + # expanded_source_df[necessary_columns].to_dict(orient='records'), + # inserted_pks + # ], sort=True + # ) + # final_columns = [cntrb_pk_name] + sorted(list(set(necessary_columns))) + # + # # Merge + # source_pk = pd.DataFrame( + # session.query( + # inserted_pks_table.c.cntrb_id, source_table + # ).join( + # source_table, + # eval( + # ' and '.join( + # [ + # ( + # f"inserted_pks_table.c['{table_column}'] " + # f"== source_table.c['{source_column}']" + # ) for table_column, source_column in zip( + # cntrb_action_map['insert']['augur'], + # cntrb_action_map['insert']['source'] + # ) + # ] + # ) + # ) + # ).all(), columns=final_columns + # ) + # + # # Cleanup merge + # source_pk = self._eval_json_columns(source_pk) + # self._close_postgres_merge(metadata, session) + + #self.logger.info( + # "Contributor id enrichment successful, result has " + # f"{len(source_pk)} data points.\n" + #) + + #return source_pk.to_dict(orient='records')""" + + def query_github_contributors(self, entry_info, repo_id): + + """ Data collection function + Query the GitHub API for contributors + """ + self.logger.info(f"Querying contributors with given entry info: {entry_info}\n") + + ## It absolutely doesn't matter if the contributor has already contributoed to a repo. it only matters that they exist in our table, and + ## if the DO, then we DO NOT want to insert them again in any GitHub Method. + github_url = entry_info['given']['github_url'] if 'github_url' in entry_info['given'] else entry_info['given']['git_url'] + + # Extract owner/repo from the url for the endpoint + owner, name = self.get_owner_repo(github_url) + + # Set the base of the url and place to hold contributors to insert + contributors_url = ( + f"https://api.github.com/repos/{owner}/{name}/" + + "contributors?per_page=100&page={}" + ) + + # Get contributors that we already have stored + # Set our duplicate and update column map keys (something other than PK) to + # check dupicates/needed column updates with + table = 'contributors' + table_pkey = 'cntrb_id' + update_col_map = {'cntrb_email': 'email'} + duplicate_col_map = {'cntrb_login': 'login'} + + #list to hold contributors needing insertion or update + contributors = self.paginate(contributors_url, duplicate_col_map, update_col_map, table, table_pkey) + + self.logger.info("Count of contributors needing insertion: " + str(len(contributors)) + "\n") + + for repo_contributor in contributors: + try: + # Need to hit this single contributor endpoint to get extra data including... + # `created at` + # i think that's it + cntrb_url = ("https://api.github.com/users/" + repo_contributor['login']) + self.logger.info("Hitting endpoint: " + cntrb_url + " ...\n") + r = requests.get(url=cntrb_url, headers=self.headers) + self.update_gh_rate_limit(r) + contributor = r.json() + + company = None + location = None + email = None + if 'company' in contributor: + company = contributor['company'] + if 'location' in contributor: + location = contributor['location'] + if 'email' in contributor: + email = contributor['email'] + canonical_email = contributor['email'] + + cntrb = { + "cntrb_login": contributor['login'], + "cntrb_created_at": contributor['created_at'], + "cntrb_email": email, + "cntrb_company": company, + "cntrb_location": location, + # "cntrb_type": , dont have a use for this as of now ... let it default to null + "cntrb_canonical": canonical_email, + "gh_user_id": contributor['id'], + "gh_login": contributor['login'], + "gh_url": contributor['url'], + "gh_html_url": contributor['html_url'], + "gh_node_id": contributor['node_id'], #This is what we are dup checking + "gh_avatar_url": contributor['avatar_url'], + "gh_gravatar_id": contributor['gravatar_id'], + "gh_followers_url": contributor['followers_url'], + "gh_following_url": contributor['following_url'], + "gh_gists_url": contributor['gists_url'], + "gh_starred_url": contributor['starred_url'], + "gh_subscriptions_url": contributor['subscriptions_url'], + "gh_organizations_url": contributor['organizations_url'], + "gh_repos_url": contributor['repos_url'], + "gh_events_url": contributor['events_url'], + "gh_received_events_url": contributor['received_events_url'], + "gh_type": contributor['type'], + "gh_site_admin": contributor['site_admin'], + "tool_source": self.tool_source, + "tool_version": self.tool_version, + "data_source": self.data_source + } + #dup check + #TODO: add additional fields to check if needed. + existingMatchingContributors = self.db.execute( + self.sql.select( + [self.contributors_table.c.gh_node_id] + ).where( + self.contributors_table.c.gh_node_id==cntrb["gh_node_id"] + ).fetchall() + ) + + if len(existingMatchingContributors) > 0: + break #if contributor already exists in table + + + # Commit insertion to table + if repo_contributor['flag'] == 'need_update': + result = self.db.execute(self.contributors_table.update().where( + self.worker_history_table.c.cntrb_email==email).values(cntrb)) + self.logger.info("Updated tuple in the contributors table with existing email: {}".format(email)) + self.cntrb_id_inc = repo_contributor['pkey'] + elif repo_contributor['flag'] == 'need_insertion': + result = self.db.execute(self.contributors_table.insert().values(cntrb)) + self.logger.info("Primary key inserted into the contributors table: {}".format(result.inserted_primary_key)) + self.results_counter += 1 + + self.logger.info("Inserted contributor: " + contributor['login'] + "\n") + + # Increment our global track of the cntrb id for the possibility of it being used as a FK + self.cntrb_id_inc = int(result.inserted_primary_key[0]) + + except Exception as e: + self.logger.error("Caught exception: {}".format(e)) + self.logger.error("Cascading Contributor Anomalie from missing repo contributor data: {} ...\n".format(cntrb_url)) + continue + + + def query_github_contributors_bulk(self, entry_info, repo_id): + + """ Data collection function + Query the GitHub API for contributors + """ + self.logger.info(f"Querying contributors with given entry info: {entry_info}\n") + + github_url = entry_info['given']['github_url'] if 'github_url' in entry_info['given'] else entry_info['given']['git_url'] + + owner, name = self.get_owner_repo(github_url) + + contributors_url = (f"https://api.github.com/repos/{owner}/{name}/" + + "contributors?per_page=100&page={}") + + action_map = { + 'insert': { + 'source': ['login'], + 'augur': ['cntrb_login'] + }, + 'update': { + 'source': ['email'], + 'augur': ['cntrb_email'] + } + } + + source_contributors = self.paginate_endpoint(contributors_url, action_map=action_map, + table=self.contributors_table) + + contributors_insert = [] + + for repo_contributor in source_contributors['insert']: + # Need to hit this single contributor endpoint to get extra data + cntrb_url = (f"https://api.github.com/users/{repo_contributor['login']}") + self.logger.info(f"Hitting endpoint: {cntrb_url} ...\n") + r = requests.get(url=cntrb_url, headers=self.headers) + self.update_gh_rate_limit(r) + contributor = r.json() + + contributors_insert.append({ + 'cntrb_login': contributor['login'], + 'cntrb_created_at': contributor['created_at'], + 'cntrb_email': contributor['email'] if 'email' in contributor else None, + 'cntrb_company': contributor['company'] if 'company' in contributor else None, + 'cntrb_location': contributor['location'] if 'location' in contributor else None, + 'cntrb_canonical': contributor['email'] if 'email' in contributor else None, + 'gh_user_id': contributor['id'], + 'gh_login': contributor['login'], + 'gh_url': contributor['url'], + 'gh_html_url': contributor['html_url'], + 'gh_node_id': contributor['node_id'], + 'gh_avatar_url': contributor['avatar_url'], + 'gh_gravatar_id': contributor['gravatar_id'], + 'gh_followers_url': contributor['followers_url'], + 'gh_following_url': contributor['following_url'], + 'gh_gists_url': contributor['gists_url'], + 'gh_starred_url': contributor['starred_url'], + 'gh_subscriptions_url': contributor['subscriptions_url'], + 'gh_organizations_url': contributor['organizations_url'], + 'gh_repos_url': contributor['repos_url'], + 'gh_events_url': contributor['events_url'], + 'gh_received_events_url': contributor['received_events_url'], + 'gh_type': contributor['type'], + 'gh_site_admin': contributor['site_admin'], + 'tool_source': self.tool_source, + 'tool_version': self.tool_version, + 'data_source': self.data_source + }) + + contributors_insert_result, contributors_update_result = self.bulk_insert(self.contributors_table, + update=source_contributors['update'], unique_columns=action_map['insert']['augur'], + insert=contributors_insert, update_columns=action_map['update']['augur']) + + def query_github_contributors_fast(self, entry_info, repo_id): + """ Data collection function + Query the GitHub API for contributors + """ + self.logger.info(f"Querying contributors with given entry info: {entry_info}") + + github_url = ( + entry_info['given']['github_url'] if 'github_url' in entry_info['given'] + else entry_info['given']['git_url'] + ) + + contributors_url = ( + f"https://api.github.com/repos/{self.owner}/{self.name}/" + "contributors?per_page=100&page={}" + ) + + action_map = { + 'insert': { + 'source': ['login'], + 'augur': ['cntrb_login'] + }, + 'update': { + 'source': ['email'], + 'augur': ['cntrb_email'] + } + } + + source_contributors = self.paginate_endpoint( + contributors_url, action_map=action_map, table=self.contributors_table + ) + + contributors_insert = [ + { + 'cntrb_login': contributor['login'], + 'cntrb_created_at': ( + contributor['created_at'] if 'created_at' in contributor else None + ), + 'cntrb_email': contributor['email'] if 'email' in contributor else None, + 'cntrb_company': contributor['company'] if 'company' in contributor else None, + 'cntrb_location': contributor['location'] if 'location' in contributor else None, + 'cntrb_canonical': contributor['email'] if 'email' in contributor else None, + 'gh_user_id': contributor['id'], + 'gh_login': contributor['login'], + 'gh_url': contributor['url'], + 'gh_html_url': contributor['html_url'], + 'gh_node_id': contributor['node_id'], + 'gh_avatar_url': contributor['avatar_url'], + 'gh_gravatar_id': contributor['gravatar_id'], + 'gh_followers_url': contributor['followers_url'], + 'gh_following_url': contributor['following_url'], + 'gh_gists_url': contributor['gists_url'], + 'gh_starred_url': contributor['starred_url'], + 'gh_subscriptions_url': contributor['subscriptions_url'], + 'gh_organizations_url': contributor['organizations_url'], + 'gh_repos_url': contributor['repos_url'], + 'gh_events_url': contributor['events_url'], + 'gh_received_events_url': contributor['received_events_url'], + 'gh_type': contributor['type'], + 'gh_site_admin': contributor['site_admin'], + 'tool_source': self.tool_source, + 'tool_version': self.tool_version, + 'data_source': self.data_source + } for contributor in source_contributors['insert'] + ] + + self.bulk_insert( + self.contributors_table, update=source_contributors['update'], + unique_columns=action_map['insert']['augur'], + insert=contributors_insert, update_columns=action_map['update']['augur'] + ) + + def update_gitlab_rate_limit(self, response, bad_credentials=False, temporarily_disable=False): + # Try to get rate limit from request headers, sometimes it does not work (GH's issue) + # In that case we just decrement from last recieved header count + if bad_credentials and len(self.oauths) > 1: + self.logger.info( + f"Removing oauth with bad credentials from consideration: {self.oauths[0]}" + ) + del self.oauths[0] + + if temporarily_disable: + self.logger.info("Gitlab rate limit reached. Temp. disabling...") + self.oauths[0]['rate_limit'] = 0 + else: + try: + self.oauths[0]['rate_limit'] = int(response.headers['RateLimit-Remaining']) + except: + self.oauths[0]['rate_limit'] -= 1 + self.logger.info("Updated rate limit, you have: " + + str(self.oauths[0]['rate_limit']) + " requests remaining.") + if self.oauths[0]['rate_limit'] <= 0: + try: + reset_time = response.headers['RateLimit-Reset'] + except Exception as e: + self.logger.info(f"Could not get reset time from headers because of error: {e}") + reset_time = 3600 + time_diff = datetime.datetime.fromtimestamp(int(reset_time)) - datetime.datetime.now() + self.logger.info("Rate limit exceeded, checking for other available keys to use.") + + # We will be finding oauth with the highest rate limit left out of our list of oauths + new_oauth = self.oauths[0] + # Endpoint to hit solely to retrieve rate limit information from headers of the response + url = "https://gitlab.com/api/v4/version" + + other_oauths = self.oauths[0:] if len(self.oauths) > 1 else [] + for oauth in other_oauths: + # self.logger.info("Inspecting rate limit info for oauth: {}\n".format(oauth)) + self.headers = {"PRIVATE-TOKEN" : oauth['access_token']} + response = requests.get(url=url, headers=self.headers) + oauth['rate_limit'] = int(response.headers['RateLimit-Remaining']) + oauth['seconds_to_reset'] = ( + datetime.datetime.fromtimestamp( + int(response.headers['RateLimit-Reset']) + ) - datetime.datetime.now() + ).total_seconds() + + # Update oauth to switch to if a higher limit is found + if oauth['rate_limit'] > new_oauth['rate_limit']: + self.logger.info(f"Higher rate limit found in oauth: {oauth}") + new_oauth = oauth + elif ( + oauth['rate_limit'] == new_oauth['rate_limit'] + and oauth['seconds_to_reset'] < new_oauth['seconds_to_reset'] + ): + self.logger.info( + f"Lower wait time found in oauth with same rate limit: {oauth}" + ) + new_oauth = oauth + + if new_oauth['rate_limit'] <= 0 and new_oauth['seconds_to_reset'] > 0: + self.logger.info( + "No oauths with >0 rate limit were found, waiting for oauth with " + f"smallest wait time: {new_oauth}\n" + ) + time.sleep(new_oauth['seconds_to_reset']) + + # Make new oauth the 0th element in self.oauths so we know which one is in use + index = self.oauths.index(new_oauth) + self.oauths[0], self.oauths[index] = self.oauths[index], self.oauths[0] + self.logger.info("Using oauth: {}\n".format(self.oauths[0])) + + # Change headers to be using the new oauth's key + self.headers = {"PRIVATE-TOKEN" : self.oauths[0]['access_token']} + + def update_gh_rate_limit(self, response, bad_credentials=False, temporarily_disable=False): + # Try to get rate limit from request headers, sometimes it does not work (GH's issue) + # In that case we just decrement from last recieved header count + if bad_credentials and len(self.oauths) > 1: + self.logger.warning( + f"Removing oauth with bad credentials from consideration: {self.oauths[0]}" + ) + del self.oauths[0] + + if temporarily_disable: + self.logger.debug( + "Github thinks we are abusing their api. Preventing use " + "of this key until its rate limit resets..." + ) + self.oauths[0]['rate_limit'] = 0 + else: + try: + self.oauths[0]['rate_limit'] = int(response.headers['X-RateLimit-Remaining']) + # self.logger.info("Recieved rate limit from headers\n") + except: + self.oauths[0]['rate_limit'] -= 1 + self.logger.info("Headers did not work, had to decrement") + self.logger.info( + f"Updated rate limit, you have: {self.oauths[0]['rate_limit']} requests remaining." + ) + if self.oauths[0]['rate_limit'] <= 0: + try: + reset_time = response.headers['X-RateLimit-Reset'] + except Exception as e: + self.logger.error(f"Could not get reset time from headers because of error: {e}") + reset_time = 3600 + time_diff = datetime.datetime.fromtimestamp(int(reset_time)) - datetime.datetime.now() + self.logger.info("Rate limit exceeded, checking for other available keys to use.") + + # We will be finding oauth with the highest rate limit left out of our list of oauths + new_oauth = self.oauths[0] + # Endpoint to hit solely to retrieve rate limit information from headers of the response + url = "https://api.github.com/users/gabe-heim" + + other_oauths = self.oauths[0:] if len(self.oauths) > 1 else [] + for oauth in other_oauths: + # self.logger.info("Inspecting rate limit info for oauth: {}\n".format(oauth)) + self.headers = {'Authorization': 'token %s' % oauth['access_token']} + + attempts = 3 + success = False + while attempts > 0 and not success: + response = requests.get(url=url, headers=self.headers) + try: + oauth['rate_limit'] = int(response.headers['X-RateLimit-Remaining']) + oauth['seconds_to_reset'] = ( + datetime.datetime.fromtimestamp( + int(response.headers['X-RateLimit-Reset']) + ) - datetime.datetime.now() + ).total_seconds() + success = True + except Exception as e: + self.logger.info( + f"oath method ran into error getting info from headers: {e}\n" + ) + self.logger.info(f"{self.headers}\n{url}\n") + attempts -= 1 + if not success: + continue + + # Update oauth to switch to if a higher limit is found + if oauth['rate_limit'] > new_oauth['rate_limit']: + self.logger.info("Higher rate limit found in oauth: {}\n".format(oauth)) + new_oauth = oauth + elif ( + oauth['rate_limit'] == new_oauth['rate_limit'] + and oauth['seconds_to_reset'] < new_oauth['seconds_to_reset'] + ): + self.logger.info( + f"Lower wait time found in oauth with same rate limit: {oauth}\n" + ) + new_oauth = oauth + + if new_oauth['rate_limit'] <= 0 and new_oauth['seconds_to_reset'] > 0: + self.logger.info( + "No oauths with >0 rate limit were found, waiting for oauth with " + f"smallest wait time: {new_oauth}\n" + ) + time.sleep(new_oauth['seconds_to_reset']) + + # Make new oauth the 0th element in self.oauths so we know which one is in use + index = self.oauths.index(new_oauth) + self.oauths[0], self.oauths[index] = self.oauths[index], self.oauths[0] + self.logger.info("Using oauth: {}\n".format(self.oauths[0])) + + # Change headers to be using the new oauth's key + self.headers = {'Authorization': 'token %s' % self.oauths[0]['access_token']} + + #TODO: figure out if changing this typo breaks anything + def query_gitlab_contributors(self, entry_info, repo_id): + + gitlab_url = ( + entry_info['given']['gitlab_url'] if 'gitlab_url' in entry_info['given'] + else entry_info['given']['git_url'] + ) + + self.logger.info("Querying contributors with given entry info: " + str(entry_info) + "\n") + + path = urlparse(gitlab_url) + split = path[2].split('/') + + owner = split[1] + name = split[2] + + # Handles git url case by removing the extension + if ".git" in name: + name = name[:-4] + + url_encoded_format = quote(owner + '/' + name, safe='') + + table = 'contributors' + table_pkey = 'cntrb_id' + ### Here we are adding gitlab user information from the API + ### Following Gabe's rework of the contributor worker. + + ### The GitLab API will NEVER give you an email. It will let you + ### Query an email, but never give you one. + ### ## Gitlab email api: https://gitlab.com/api/v4/users?search=s@goggins.com + ### We don't need to update right now, so commenting out. + ### TODO: SOLVE LOGIC. + # update_col_map = {'cntrb_email': 'email'} + update_col_map = {} + duplicate_col_map = {'gl_username': 'username'} + + # list to hold contributors needing insertion or update + contributors = self.paginate("https://gitlab.com/api/v4/projects/" + url_encoded_format + "/repository/contributors?per_page=100&page={}", duplicate_col_map, update_col_map, table, table_pkey, platform='gitlab') + + for repo_contributor in contributors: + try: + cntrb_compressed_url = ("https://gitlab.com/api/v4/users?search=" + repo_contributor['email']) + self.logger.info("Hitting endpoint: " + cntrb_compressed_url + " ...\n") + r = requests.get(url=cntrb_compressed_url, headers=self.headers) + contributor_compressed = r.json() + + email = repo_contributor['email'] + self.logger.info(contributor_compressed) + if len(contributor_compressed) == 0 or type(contributor_compressed) is dict or "id" not in contributor_compressed[0]: + continue + + self.logger.info("Fetching for user: " + str(contributor_compressed[0]["id"])) + + cntrb_url = ("https://gitlab.com/api/v4/users/" + str(contributor_compressed[0]["id"])) + self.logger.info("Hitting end point to get complete contributor info now: " + cntrb_url + "...\n") + r = requests.get(url=cntrb_url, headers=self.headers) + contributor = r.json() + + cntrb = { + "gl_id": contributor.get('gl_id', None), + "gl_full_name": contributor.get('full_name', None), + "gl_username": contributor.get('username', None), + "gl_state": contributor.get('state', None), + "gl_avatar_url": contributor.get('avatar_url', None), + "gl_web_url": contributor.get('web_url', None), + #"cntrb_login": contributor.get('username', None), + #"cntrb_created_at": contributor.get('created_at', None), + "cntrb_email": ('email', None), + #"cntrb_company": contributor.get('organization', None), + #"cntrb_location": contributor.get('location', None), + # "cntrb_type": , dont have a use for this as of now ... let it default to null + #"cntrb_canonical": contributor.get('public_email', None), + #"gh_user_id": contributor.get('id', None), + #"gh_login": contributor.get('username', None), + #"gh_url": contributor.get('web_url', None), + #"gh_html_url": contributor.get('web_url', None), + #"gh_node_id": None, + #"gh_avatar_url": contributor.get('avatar_url', None), + #"gh_gravatar_id": None, + #"gh_followers_url": None, + #"gh_following_url": None, + #"gh_gists_url": None, + #"gh_starred_url": None, + #"gh_subscriptions_url": None, + #"gh_organizations_url": None, + #"gh_repos_url": None, + #"gh_events_url": None, + #"gh_received_events_url": None, + #"gh_type": None, + #"gh_site_admin": None, + "tool_source": self.tool_source, + "tool_version": self.tool_version, + "data_source": self.data_source + } + + # Commit insertion to table + if repo_contributor['flag'] == 'need_update': + result = self.db.execute(self.contributors_table.update().where( + self.worker_history_table.c.cntrb_email == email).values(cntrb)) + self.logger.info("Updated tuple in the contributors table with existing email: {}".format(email)) + self.cntrb_id_inc = repo_contributor['pkey'] + elif repo_contributor['flag'] == 'need_insertion': + result = self.db.execute(self.contributors_table.insert().values(cntrb)) + self.logger.info("Primary key inserted into the contributors table: {}".format(result.inserted_primary_key)) + self.results_counter += 1 + + self.logger.info("Inserted contributor: " + contributor['username'] + "\n") + + # Increment our global track of the cntrb id for the possibility of it being used as a FK + self.cntrb_id_inc = int(result.inserted_primary_key[0]) + + except Exception as e: + self.logger.info("Caught exception: {}".format(e)) + self.logger.info("Cascading Contributor Anomalie from missing repo contributor data: {} ...\n".format(cntrb_url)) + continue + + + def update_gitlab_rate_limit(self, response, bad_credentials=False, temporarily_disable=False): + # Try to get rate limit from request headers, sometimes it does not work (GH's issue) + # In that case we just decrement from last recieved header count + if bad_credentials and len(self.oauths) > 1: + self.logger.info( + f"Removing oauth with bad credentials from consideration: {self.oauths[0]}" + ) + del self.oauths[0] + + if temporarily_disable: + self.logger.info("Gitlab rate limit reached. Temp. disabling...") + self.oauths[0]['rate_limit'] = 0 + else: + try: + self.oauths[0]['rate_limit'] = int(response.headers['RateLimit-Remaining']) + except: + self.oauths[0]['rate_limit'] -= 1 + self.logger.info("Updated rate limit, you have: " + + str(self.oauths[0]['rate_limit']) + " requests remaining.") + if self.oauths[0]['rate_limit'] <= 0: + try: + reset_time = response.headers['RateLimit-Reset'] + except Exception as e: + self.logger.info(f"Could not get reset time from headers because of error: {e}") + reset_time = 3600 + time_diff = datetime.datetime.fromtimestamp(int(reset_time)) - datetime.datetime.now() + self.logger.info("Rate limit exceeded, checking for other available keys to use.") + + # We will be finding oauth with the highest rate limit left out of our list of oauths + new_oauth = self.oauths[0] + # Endpoint to hit solely to retrieve rate limit information from headers of the response + url = "https://gitlab.com/api/v4/version" + + other_oauths = self.oauths[0:] if len(self.oauths) > 1 else [] + for oauth in other_oauths: + # self.logger.info("Inspecting rate limit info for oauth: {}\n".format(oauth)) + self.headers = {"PRIVATE-TOKEN" : oauth['access_token']} + response = requests.get(url=url, headers=self.headers) + oauth['rate_limit'] = int(response.headers['RateLimit-Remaining']) + oauth['seconds_to_reset'] = ( + datetime.datetime.fromtimestamp( + int(response.headers['RateLimit-Reset']) + ) - datetime.datetime.now() + ).total_seconds() + + # Update oauth to switch to if a higher limit is found + if oauth['rate_limit'] > new_oauth['rate_limit']: + self.logger.info(f"Higher rate limit found in oauth: {oauth}") + new_oauth = oauth + elif ( + oauth['rate_limit'] == new_oauth['rate_limit'] + and oauth['seconds_to_reset'] < new_oauth['seconds_to_reset'] + ): + self.logger.info( + f"Lower wait time found in oauth with same rate limit: {oauth}" + ) + new_oauth = oauth + + if new_oauth['rate_limit'] <= 0 and new_oauth['seconds_to_reset'] > 0: + self.logger.info( + "No oauths with >0 rate limit were found, waiting for oauth with " + f"smallest wait time: {new_oauth}\n" + ) + time.sleep(new_oauth['seconds_to_reset']) + + # Make new oauth the 0th element in self.oauths so we know which one is in use + index = self.oauths.index(new_oauth) + self.oauths[0], self.oauths[index] = self.oauths[index], self.oauths[0] + self.logger.info("Using oauth: {}\n".format(self.oauths[0])) + + # Change headers to be using the new oauth's key + self.headers = {"PRIVATE-TOKEN" : self.oauths[0]['access_token']} + + + def update_gh_rate_limit(self, response, bad_credentials=False, temporarily_disable=False): + # Try to get rate limit from request headers, sometimes it does not work (GH's issue) + # In that case we just decrement from last recieved header count + if bad_credentials and len(self.oauths) > 1: + self.logger.warning( + f"Removing oauth with bad credentials from consideration: {self.oauths[0]}" + ) + del self.oauths[0] + + if temporarily_disable: + self.logger.debug( + "Github thinks we are abusing their api. Preventing use " + "of this key until its rate limit resets..." + ) + self.oauths[0]['rate_limit'] = 0 + else: + try: + self.oauths[0]['rate_limit'] = int(response.headers['X-RateLimit-Remaining']) + # self.logger.info("Recieved rate limit from headers\n") + except: + self.oauths[0]['rate_limit'] -= 1 + self.logger.info("Headers did not work, had to decrement") + self.logger.info( + f"Updated rate limit, you have: {self.oauths[0]['rate_limit']} requests remaining." + ) + if self.oauths[0]['rate_limit'] <= 0: + try: + reset_time = response.headers['X-RateLimit-Reset'] + except Exception as e: + self.logger.error(f"Could not get reset time from headers because of error: {e}") + reset_time = 3600 + time_diff = datetime.datetime.fromtimestamp(int(reset_time)) - datetime.datetime.now() + self.logger.info("Rate limit exceeded, checking for other available keys to use.") + + # We will be finding oauth with the highest rate limit left out of our list of oauths + new_oauth = self.oauths[0] + # Endpoint to hit solely to retrieve rate limit information from headers of the response + url = "https://api.github.com/users/gabe-heim" + + other_oauths = self.oauths[0:] if len(self.oauths) > 1 else [] + for oauth in other_oauths: + # self.logger.info("Inspecting rate limit info for oauth: {}\n".format(oauth)) + self.headers = {'Authorization': 'token %s' % oauth['access_token']} + + attempts = 3 + success = False + while attempts > 0 and not success: + response = requests.get(url=url, headers=self.headers) + try: + oauth['rate_limit'] = int(response.headers['X-RateLimit-Remaining']) + oauth['seconds_to_reset'] = ( + datetime.datetime.fromtimestamp( + int(response.headers['X-RateLimit-Reset']) + ) - datetime.datetime.now() + ).total_seconds() + success = True + except Exception as e: + self.logger.info( + f"oath method ran into error getting info from headers: {e}\n" + ) + self.logger.info(f"{self.headers}\n{url}\n") + attempts -= 1 + if not success: + continue + + # Update oauth to switch to if a higher limit is found + if oauth['rate_limit'] > new_oauth['rate_limit']: + self.logger.info("Higher rate limit found in oauth: {}\n".format(oauth)) + new_oauth = oauth + elif ( + oauth['rate_limit'] == new_oauth['rate_limit'] + and oauth['seconds_to_reset'] < new_oauth['seconds_to_reset'] + ): + self.logger.info( + f"Lower wait time found in oauth with same rate limit: {oauth}\n" + ) + new_oauth = oauth + + if new_oauth['rate_limit'] <= 0 and new_oauth['seconds_to_reset'] > 0: + self.logger.info( + "No oauths with >0 rate limit were found, waiting for oauth with " + f"smallest wait time: {new_oauth}\n" + ) + time.sleep(new_oauth['seconds_to_reset']) + + # Make new oauth the 0th element in self.oauths so we know which one is in use + index = self.oauths.index(new_oauth) + self.oauths[0], self.oauths[index] = self.oauths[index], self.oauths[0] + self.logger.info("Using oauth: {}\n".format(self.oauths[0])) + + # Change headers to be using the new oauth's key + self.headers = {'Authorization': 'token %s' % self.oauths[0]['access_token']} + + def update_rate_limit( + self, response, bad_credentials=False, temporarily_disable=False, platform="gitlab" + ): + if platform == 'gitlab': + return self.update_gitlab_rate_limit( + response, bad_credentials=bad_credentials, temporarily_disable=temporarily_disable + ) + elif platform == 'github': + return self.update_gh_rate_limit( + response, bad_credentials=bad_credentials, temporarily_disable=temporarily_disable + ) + + + #Indexerror somewhere + def multi_thread_urls(self, all_urls, max_attempts=5, platform='github'): + """ + :param all_urls: list of tuples + """ + + if not len(all_urls): + self.logger.info("No urls to multithread, returning blank list.\n") + return [] + + def load_url(url, extra_data={}): + try: + html = requests.get(url, stream=True, headers=self.headers) + return html, extra_data + except requests.exceptions.RequestException as e: + self.logger.info(e, url) + + self.logger.info("Beginning to multithread API endpoints.") + + start = time.time() + + all_data = [] + valid_url_count = len(all_urls) + + partitions = math.ceil(len(all_urls) / 600) + self.logger.info(f"{len(all_urls)} urls to process. Trying {partitions} partitions. " + + f"Using {max(multiprocessing.cpu_count()//8, 1)} threads.") + for urls in numpy.array_split(all_urls, partitions): + attempts = 0 + self.logger.info(f"Total data points collected so far: {len(all_data)}") + while len(urls) > 0 and attempts < max_attempts: + with concurrent.futures.ThreadPoolExecutor( + max_workers=max(multiprocessing.cpu_count()//8, 1) + ) as executor: + # Start the load operations and mark each future with its URL + future_to_url = {executor.submit(load_url, *url): url for url in urls} + self.logger.info("Multithreaded urls and returned status codes:") + count = 0 + for future in concurrent.futures.as_completed(future_to_url): + + if count % 100 == 0: + self.logger.info( + f"Processed {len(all_data)} / {valid_url_count} urls. " + f"{len(urls)} remaining in this partition." + ) + count += 1 + + url = future_to_url[future] + try: + response, extra_data = future.result() + + if response.status_code != 200: + self.logger.info( + f"Url: {url[0]} ; Status code: {response.status_code}" + ) + + if response.status_code == 403 or response.status_code == 401: # 403 is rate limit, 404 is not found, 401 is bad credentials + self.update_rate_limit(response, platform=platform) + continue + + elif response.status_code == 200: + try: + page_data = response.json() + except: + page_data = json.loads(json.dumps(response.text)) + + page_data = [{**data, **extra_data} for data in page_data] + all_data += page_data + + if 'last' in response.links and "&page=" not in url[0]: + urls += [ + (url[0] + f"&page={page}", extra_data) for page in range( + 2, int(response.links['last']['url'].split('=')[-1]) + 1 + ) + ] + try: + # self.logger.info(f"urls boundry issue? for {urls} where they are equal to {url}.") + + urls = numpy.delete(urls, numpy.where(urls == url), axis=0) + except: + self.logger.info(f"ERROR with axis = 0 - Now attempting without setting axis for numpy.delete for {urls} where they are equal to {url}.") + urls = numpy.delete(urls, numpy.where(urls == url)) + + elif response.status_code == 404: + urls = numpy.delete(urls, numpy.where(urls == url), axis=0) + self.logger.info(f"Not found url: {url}\n") + else: + self.logger.info( + f"Unhandled response code: {response.status_code} {url}\n" + ) + + except Exception as e: + self.logger.info( + f"{url} generated an exception: {traceback.format_exc()}\n" + ) + + attempts += 1 + + self.logger.info( + f"Processed {valid_url_count} urls and got {len(all_data)} data points " + f"in {time.time() - start} seconds thanks to multithreading!\n" + ) + return all_data + + + #insertion_method and stagger are arguments that allow paginate_endpoint to insert at around ~500 pages at a time. + def paginate_endpoint( + self, url, action_map={}, table=None, where_clause=True, platform='github', in_memory=True, stagger=False, insertion_method=None, insertion_threshold=500 + ): + + #Get augur columns using the action map along with the primary key + table_values = self.db.execute( + s.sql.select(self.get_relevant_columns(table, action_map)).where(where_clause) + ).fetchall() + + page_number = 1 + multiple_pages = False + need_insertion = [] + need_update = [] + + #Stores sum of page data + all_data = [] + forward_pagination = True + backwards_activation = False + last_page_number = -1 + + #Block to handle page queries and retry at least 10 times + while True: + + # Multiple attempts to hit endpoint + num_attempts = 0 + success = False + while num_attempts < 10: + self.logger.info(f"Hitting endpoint: {url.format(page_number)}...\n") + try: + response = requests.get(url=url.format(page_number), headers=self.headers) + except TimeoutError as e: + self.logger.info("Request timed out. Sleeping 10 seconds and trying again...\n") + time.sleep(10) + continue + + self.update_rate_limit(response, platform=platform) + + try: + page_data = response.json() + except: + page_data = json.loads(json.dumps(response.text)) + + if type(page_data) == list: + success = True + break + elif type(page_data) == dict: + self.logger.info("Request returned a dict: {}\n".format(page_data)) + if page_data['message'] == "Not Found": + self.logger.warning( + "Github repo was not found or does not exist for endpoint: " + f"{url.format(page_number)}\n" + ) + break + if "You have triggered an abuse detection mechanism." in page_data['message']: + num_attempts -= 1 + self.update_rate_limit(response, temporarily_disable=True,platform=platform) + if page_data['message'] == "Bad credentials": + self.update_rate_limit(response, bad_credentials=True, platform=platform) + elif type(page_data) == str: + self.logger.info(f"Warning! page_data was string: {page_data}\n") + if "" in page_data: + self.logger.info("HTML was returned, trying again...\n") + elif len(page_data) == 0: + self.logger.warning("Empty string, trying again...\n") + else: + try: + page_data = json.loads(page_data) + success = True + break + except: + pass + num_attempts += 1 + if not success: + break + + # Success + + # Determine if continued pagination is needed + + if len(page_data) == 0: + self.logger.info("Response was empty, breaking from pagination.\n") + break + + all_data += page_data + + if not forward_pagination: + + # Checking contents of requests with what we already have in the db + page_insertions, page_updates = self.organize_needed_data( + page_data, table_values, list(table.primary_key)[0].name, + action_map, in_memory=True + ) + + # Reached a page where we already have all tuples + if len(need_insertion) == 0 and len(need_update) == 0 and \ + backwards_activation: + self.logger.info( + "No more pages with unknown tuples, breaking from pagination.\n" + ) + break + + need_insertion += page_insertions + need_update += page_updates + + # Find last page so we can decrement from there + if 'last' in response.links and last_page_number == -1: + if platform == 'github': + last_page_number = int(response.links['last']['url'][-6:].split('=')[1]) + elif platform == 'gitlab': + last_page_number = int(response.links['last']['url'].split('&')[2].split('=')[1]) + + if not forward_pagination and not backwards_activation: + page_number = last_page_number + backwards_activation = True + + self.logger.info("Analyzation of page {} of {} complete\n".format(page_number, + int(last_page_number) if last_page_number != -1 else "*last page not known*")) + + if (page_number <= 1 and not forward_pagination) or \ + (page_number >= last_page_number and forward_pagination): + self.logger.info("No more pages to check, breaking from pagination.\n") + break + + #This is probably where we should insert at around ~500 at a time + #makes sure that stagger is enabled, we have an insertion method, and the insertion happens every 500 pages or so. + if stagger and insertion_method != None and page_number % insertion_threshold == 0: + #call insertion method passed as argument. + staggered_source_prs = { + 'insert' : need_insertion, + 'update' : need_update, + 'all' : all_data + } + + #Use the method the subclass needs in order to insert the data. + insertion_method(staggered_source_prs,action_map) + + #clear the data from memory and avoid duplicate insertions. + need_insertion = [] + need_update = [] + all_data = [] + + page_number = page_number + 1 if forward_pagination else page_number - 1 + + if forward_pagination: + need_insertion, need_update = self.organize_needed_data( + all_data, table_values, list(table.primary_key)[0].name, action_map, + in_memory=in_memory + ) + + return { + 'insert': need_insertion, + 'update': need_update, + 'all': all_data + } + + #TODO: deprecated but still used by the issues worker. + def paginate(self, url, duplicate_col_map, update_col_map, table, table_pkey, where_clause="", value_update_col_map={}, platform="github"): + """ DEPRECATED + Paginate either backwards or forwards (depending on the value of the worker's + finishing_task attribute) through all the GitHub or GitLab api endpoint pages. + + :param url: String, the url of the API endpoint we are paginating through, expects + a curly brace string formatter within the string to format the Integer + representing the page number that is wanted to be returned + :param duplicate_col_map: Dictionary, maps the column names of the source data + to the field names in our database for columns that should be checked for + duplicates (if source data value == value in existing database row, then this + element is a duplicate and would not need an insertion). Key is source data + column name, value is database field name. Example: {'id': 'gh_issue_id'} + :param update_col_map: Dictionary, maps the column names of the source data + to the field names in our database for columns that should be checked for + updates (if source data value != value in existing database row, then an + update is needed). Key is source data column name, value is database field name. + Example: {'id': 'gh_issue_id'} + :param table: String, the name of the table that holds the values to check for + duplicates/updates against + :param table_pkey: String, the field name of the primary key of the table in + the database that we are getting the values for to cross-reference to check + for duplicates. + :param where_clause: String, optional where clause to filter the values + that are queried when preparing the values that will be cross-referenced + for duplicates/updates + :param value_update_col_map: Dictionary, sometimes we add a new field to a table, + and we want to trigger an update of that row in the database even if all of the + data values are the same and would not need an update ordinarily. Checking for + a specific existing value in the database field allows us to do this. The key is the + name of the field in the database we are checking for a specific value to trigger + an update, the value is the value we are checking for equality to trigger an update. + Example: {'cntrb_id': None} + :return: List of dictionaries, all data points from the pages of the specified API endpoint + each with a 'flag' key-value pair representing the required action to take with that + data point (i.e. 'need_insertion', 'need_update', 'none') + """ + + update_keys = list(update_col_map.keys()) if update_col_map else [] + update_keys += list(value_update_col_map.keys()) if value_update_col_map else [] + cols_to_query = list(duplicate_col_map.keys()) + update_keys + [table_pkey] + table_values = self.get_table_values(cols_to_query, [table], where_clause) + + i = 1 + multiple_pages = False + tuples = [] + while True: + num_attempts = 0 + success = False + while num_attempts < 3: + self.logger.info(f'Hitting endpoint: {url.format(i)}...\n') + r = requests.get(url=url.format(i), headers=self.headers) + + self.update_rate_limit(r, platform=platform) + if 'last' not in r.links: + last_page = None + else: + if platform == "github": + last_page = r.links['last']['url'][-6:].split('=')[1] + elif platform == "gitlab": + last_page = r.links['last']['url'].split('&')[2].split("=")[1] + self.logger.info("Analyzing page {} of {}\n".format(i, int(last_page) + 1 if last_page is not None else '*last page not known*')) + + try: + j = r.json() + except: + j = json.loads(json.dumps(r.text)) + + if type(j) != dict and type(j) != str: + success = True + break + elif type(j) == dict: + self.logger.info("Request returned a dict: {}\n".format(j)) + if j['message'] == 'Not Found': + self.logger.warning("Github repo was not found or does not exist for endpoint: {}\n".format(url)) + break + if j['message'] == 'You have triggered an abuse detection mechanism. Please wait a few minutes before you try again.': + num_attempts -= 1 + self.logger.info("rate limit update code goes here") + self.update_rate_limit(r, temporarily_disable=True,platform=platform) + if j['message'] == 'Bad credentials': + self.logger.info("rate limit update code goes here") + self.update_rate_limit(r, bad_credentials=True, platform=platform) + elif type(j) == str: + self.logger.info(f'J was string: {j}\n') + if '' in j: + self.logger.info('HTML was returned, trying again...\n') + elif len(j) == 0: + self.logger.warning('Empty string, trying again...\n') + else: + try: + j = json.loads(j) + success = True + break + except: + pass + num_attempts += 1 + if not success: + break + + # Find last page so we can decrement from there + if 'last' in r.links and not multiple_pages and not self.finishing_task: + if platform == "github": + param = r.links['last']['url'][-6:] + i = int(param.split('=')[1]) + 1 + elif platform == "gitlab": + i = int(r.links['last']['url'].split('&')[2].split("=")[1]) + 1 + self.logger.info("Multiple pages of request, last page is " + str(i - 1) + "\n") + multiple_pages = True + elif not multiple_pages and not self.finishing_task: + self.logger.info("Only 1 page of request\n") + elif self.finishing_task: + self.logger.info("Finishing a previous task, paginating forwards ..." + " excess rate limit requests will be made\n") + + if len(j) == 0: + self.logger.info("Response was empty, breaking from pagination.\n") + break + + # Checking contents of requests with what we already have in the db + j = self.assign_tuple_action(j, table_values, update_col_map, duplicate_col_map, table_pkey, value_update_col_map) + + if not j: + self.logger.error("Assigning tuple action failed, moving to next page.\n") + i = i + 1 if self.finishing_task else i - 1 + continue + try: + to_add = [obj for obj in j if obj not in tuples and (obj['flag'] != 'none')] + except Exception as e: + self.logger.error("Failure accessing data of page: {}. Moving to next page.\n".format(e)) + i = i + 1 if self.finishing_task else i - 1 + continue + if len(to_add) == 0 and multiple_pages and 'last' in r.links: + self.logger.info("{}".format(r.links['last'])) + if platform == "github": + page_number = int(r.links['last']['url'][-6:].split('=')[1]) + elif platform == "gitlab": + page_number = int(r.links['last']['url'].split('&')[2].split("=")[1]) + if i - 1 != page_number: + self.logger.info("No more pages with unknown tuples, breaking from pagination.\n") + break + + tuples += to_add + + i = i + 1 if self.finishing_task else i - 1 + + # Since we already wouldve checked the first page... break + if (i == 1 and multiple_pages and not self.finishing_task) or i < 1 or len(j) == 0: + self.logger.info("No more pages to check, breaking from pagination.\n") + break + + return tuples + + def new_paginate_endpoint( + self, url, action_map={}, table=None, where_clause=True, platform='github' + ): + + page_number = 1 + multiple_pages = False + need_insertion = [] + need_update = [] + all_data = [] + forward_pagination = True + backwards_activation = False + last_page_number = -1 + while True: + + # Multiple attempts to hit endpoint + num_attempts = 0 + success = False + while num_attempts < 10: + self.logger.info("hitting an endpiont") + # f"Hitting endpoint: ...\n" + # f"{url.format(page_number)} on page number. \n") + try: + response = requests.get(url=url.format(page_number), headers=self.headers) + except TimeoutError as e: + self.logger.info("Request timed out. Sleeping 10 seconds and trying again...\n") + time.sleep(10) + continue + + self.update_rate_limit(response, platform=platform) + + try: + page_data = response.json() + except: + page_data = json.loads(json.dumps(response.text)) + + if type(page_data) == list: + success = True + break + elif type(page_data) == dict: + self.logger.info("Request returned a dict: {}\n".format(page_data)) + if page_data['message'] == "Not Found": + self.logger.warning( + "Github repo was not found or does not exist for endpoint: " + f"{url.format(page_number)}\n" + ) + break + if "You have triggered an abuse detection mechanism." in page_data['message']: + num_attempts -= 1 + self.update_rate_limit(response, temporarily_disable=True,platform=platform) + if page_data['message'] == "Bad credentials": + self.update_rate_limit(response, bad_credentials=True, platform=platform) + elif type(page_data) == str: + self.logger.info(f"Warning! page_data was string: {page_data}\n") + if "" in page_data: + self.logger.info("HTML was returned, trying again...\n") + elif len(page_data) == 0: + self.logger.warning("Empty string, trying again...\n") + else: + try: + page_data = json.loads(page_data) + success = True + break + except: + pass + num_attempts += 1 + if not success: + break + + # Success + + # Determine if continued pagination is needed + + if len(page_data) == 0: + self.logger.info("Response was empty, breaking from pagination.\n") + break + + all_data += page_data + + if not forward_pagination: + + # Checking contents of requests with what we already have in the db + page_insertions, page_updates = self.new_organize_needed_data( + page_data, augur_table=table, action_map=action_map + ) + + # Reached a page where we already have all tuples + if len(need_insertion) == 0 and len(need_update) == 0 and \ + backwards_activation: + self.logger.info( + "No more pages with unknown tuples, breaking from pagination.\n" + ) + break + + need_insertion += page_insertions + need_update += page_updates + + # Find last page so we can decrement from there + if 'last' in response.links and last_page_number == -1: + if platform == 'github': + last_page_number = int(response.links['last']['url'][-6:].split('=')[1]) + elif platform == 'gitlab': + last_page_number = int(response.links['last']['url'].split('&')[2].split('=')[1]) + + if not forward_pagination and not backwards_activation: + page_number = last_page_number + backwards_activation = True + + self.logger.info("Analyzation of page {} of {} complete\n".format(page_number, + int(last_page_number) if last_page_number != -1 else "*last page not known*")) + + if (page_number <= 1 and not forward_pagination) or \ + (page_number >= last_page_number and forward_pagination): + self.logger.info("No more pages to check, breaking from pagination.\n") + break + + page_number = page_number + 1 if forward_pagination else page_number - 1 + + if forward_pagination: + need_insertion, need_update = self.new_organize_needed_data( + all_data, augur_table=table, action_map=action_map + ) + + return { + 'insert': need_insertion, + 'update': need_update, + 'all': all_data + } diff --git a/workers/worker_persistance.py b/workers/worker_persistance.py new file mode 100644 index 0000000000..b0557bde39 --- /dev/null +++ b/workers/worker_persistance.py @@ -0,0 +1,1180 @@ +#SPDX-License-Identifier: MIT +""" Helper methods constant across all workers """ +import requests +import datetime +import time +import traceback +import json +import os +import sys +import math +import logging +import numpy +import copy +import concurrent +import multiprocessing +import psycopg2 +import psycopg2.extensions +import csv +import io +from logging import FileHandler, Formatter, StreamHandler +from multiprocessing import Process, Queue, Pool, Value +from os import getpid +import sqlalchemy as s +import pandas as pd +from pathlib import Path +from urllib.parse import urlparse, quote +from sqlalchemy.ext.automap import automap_base +from augur.config import AugurConfig +from augur.logging import AugurLogging +from sqlalchemy.sql.expression import bindparam +from concurrent import futures +import dask.dataframe as dd + +class Persistant(): + + ROOT_AUGUR_DIR = os.path.dirname(os.path.dirname(os.path.realpath(__file__))) + + def __init__(self, worker_type, data_tables=[],operations_tables=[]): + + self.db_schema = None + self.helper_schema = None + self.worker_type = worker_type + #For database functionality + self.data_tables = data_tables + self.operations_tables = operations_tables + + self._root_augur_dir = Persistant.ROOT_AUGUR_DIR + + # count of tuples inserted in the database ( to store stats for each task in op tables) + self.update_counter = 0 + self.insert_counter = 0 + self._results_counter = 0 + + # Update config with options that are general and not specific to any worker + self.augur_config = AugurConfig(self._root_augur_dir) + + #TODO: consider taking parts of this out for the base class and then overriding it in WorkerGitInterfaceable + self.config = { + 'worker_type': self.worker_type, + 'host': self.augur_config.get_value('Server', 'host') + } + self.config.update(self.augur_config.get_section("Logging")) + + try: + worker_defaults = self.augur_config.get_default_config()['Workers'][self.config['worker_type']] + self.config.update(worker_defaults) + except KeyError as e: + logging.warn('Could not get default configuration for {}'.format(self.config['worker_type'])) + + worker_info = self.augur_config.get_value('Workers', self.config['worker_type']) + self.config.update(worker_info) + + worker_port = self.config['port'] + while True: + try: + r = requests.get('http://{}:{}/AUGWOP/heartbeat'.format( + self.config['host'], worker_port)).json() + if 'status' in r: + if r['status'] == 'alive': + worker_port += 1 + except: + break + + #add credentials to db config. Goes to databaseable + self.config.update({ + 'port': worker_port, + 'id': "workers.{}.{}".format(self.worker_type, worker_port), + 'capture_output': False, + 'location': 'http://{}:{}'.format(self.config['host'], worker_port), + 'port_broker': self.augur_config.get_value('Server', 'port'), + 'host_broker': self.augur_config.get_value('Server', 'host'), + 'host_database': self.augur_config.get_value('Database', 'host'), + 'port_database': self.augur_config.get_value('Database', 'port'), + 'user_database': self.augur_config.get_value('Database', 'user'), + 'name_database': self.augur_config.get_value('Database', 'name'), + 'password_database': self.augur_config.get_value('Database', 'password') + }) + + # Initialize logging in the main process + self.initialize_logging() + + # Clear log contents from previous runs + open(self.config["server_logfile"], "w").close() + open(self.config["collection_logfile"], "w").close() + + # Get configured collection logger + self.logger = logging.getLogger(self.config["id"]) + self.logger.info('Worker (PID: {}) initializing...'.format(str(os.getpid()))) + + #Return string representation of an object with all information needed to recreate the object (Think of it like a pickle made out of text) + #Called using repr(*object*). eval(repr(*object*)) == *object* + def __repr__(self): + return f"{self.config['id']}" + + def initialize_logging(self): + #Get the log level in upper case from the augur config's logging section. + self.config['log_level'] = self.config['log_level'].upper() + if self.config['debug']: + self.config['log_level'] = 'DEBUG' + + if self.config['verbose']: + format_string = AugurLogging.verbose_format_string + else: + format_string = AugurLogging.simple_format_string + + #Use stock python formatter for stdout + formatter = Formatter(fmt=format_string) + #User custom for stderr, Gives more info than verbose_format_string + error_formatter = Formatter(fmt=AugurLogging.error_format_string) + + worker_dir = AugurLogging.get_log_directories(self.augur_config, reset_logfiles=False) + "/workers/" + Path(worker_dir).mkdir(exist_ok=True) + logfile_dir = worker_dir + f"/{self.worker_type}/" + Path(logfile_dir).mkdir(exist_ok=True) + + #Create more complex sublogs in the logfile directory determined by the AugurLogging class + server_logfile = logfile_dir + '{}_{}_server.log'.format(self.worker_type, self.config["port"]) + collection_logfile = logfile_dir + '{}_{}_collection.log'.format(self.worker_type, self.config["port"]) + collection_errorfile = logfile_dir + '{}_{}_collection.err'.format(self.worker_type, self.config["port"]) + self.config.update({ + 'logfile_dir': logfile_dir, + 'server_logfile': server_logfile, + 'collection_logfile': collection_logfile, + 'collection_errorfile': collection_errorfile + }) + + collection_file_handler = FileHandler(filename=self.config['collection_logfile'], mode="a") + collection_file_handler.setFormatter(formatter) + collection_file_handler.setLevel(self.config['log_level']) + + collection_errorfile_handler = FileHandler(filename=self.config['collection_errorfile'], mode="a") + collection_errorfile_handler.setFormatter(error_formatter) + collection_errorfile_handler.setLevel(logging.WARNING) + + logger = logging.getLogger(self.config['id']) + logger.handlers = [] + logger.addHandler(collection_file_handler) + logger.addHandler(collection_errorfile_handler) + logger.setLevel(self.config['log_level']) + logger.propagate = False + + if self.config['debug']: + self.config['log_level'] = 'DEBUG' + console_handler = StreamHandler() + console_handler.setFormatter(formatter) + console_handler.setLevel(self.config['log_level']) + logger.addHandler(console_handler) + + if self.config['quiet']: + logger.disabled = True + + self.logger = logger + + #database interface, the git interfaceable adds additional function to the super method. + def initialize_database_connections(self): + DB_STR = 'postgresql://{}:{}@{}:{}/{}'.format( + self.config['user_database'], self.config['password_database'], self.config['host_database'], self.config['port_database'], self.config['name_database'] + ) + + # Create an sqlalchemy engine for both database schemas + self.logger.info("Making database connections") + + self.db_schema = 'augur_data' + self.db = s.create_engine(DB_STR, poolclass=s.pool.NullPool, + connect_args={'options': '-csearch_path={}'.format(self.db_schema)}) + # , 'client_encoding': 'utf8' + self.helper_schema = 'augur_operations' + self.helper_db = s.create_engine(DB_STR, poolclass=s.pool.NullPool, + connect_args={'options': '-csearch_path={}'.format(self.helper_schema)}) + + metadata = s.MetaData() + helper_metadata = s.MetaData() + + # Reflect only the tables we will use for each schema's metadata object + metadata.reflect(self.db, only=self.data_tables) + helper_metadata.reflect(self.helper_db, only=self.operations_tables) + + Base = automap_base(metadata=metadata) + HelperBase = automap_base(metadata=helper_metadata) + + Base.prepare() + HelperBase.prepare() + + # So we can access all our tables when inserting, updating, etc + for table in self.data_tables: + setattr(self, '{}_table'.format(table), Base.classes[table].__table__) + + try: + self.logger.info(HelperBase.classes.keys()) + except: + pass + + for table in self.operations_tables: + try: + setattr(self, '{}_table'.format(table), HelperBase.classes[table].__table__) + except Exception as e: + self.logger.error("Error setting attribute for table: {} : {}".format(table, e)) + + # Increment so we are ready to insert the 'next one' of each of these most recent ids + self.logger.info("Trying to find max id of table...") + try: + self.history_id = self.get_max_id('worker_history', 'history_id', operations_table=True) + 1 + except Exception as e: + self.logger.info(f"Could not find max id. ERROR: {e}") + + #25151 + #self.logger.info(f"Good, passed the max id getter. Max id: {self.history_id}") + + #Make sure the type used to store date is synced with the worker? + def sync_df_types(self, subject, source, subject_columns, source_columns): + + type_dict = {} + for index in range(len(source_columns)): + if type(source[source_columns[index]].values[0]) == numpy.datetime64: + subject[subject_columns[index]] = pd.to_datetime( + subject[subject_columns[index]], utc=True + ) + source[source_columns[index]] = pd.to_datetime( + source[source_columns[index]], utc=True + ) + continue + type_dict[subject_columns[index]] = type(source[source_columns[index]].values[0]) + + subject = subject.astype(type_dict) + + return subject, source + + #Convert safely from sql type to python type? + def get_sqlalchemy_type(self, data, column_name=None): + if type(data) == str: + try: + time.strptime(data, "%Y-%m-%dT%H:%M:%SZ") + return s.types.TIMESTAMP + except ValueError: + return s.types.String + elif ( + isinstance(data, (int, numpy.integer)) + or (isinstance(data, float) and column_name and 'id' in column_name) + ): + return s.types.BigInteger + elif isinstance(data, float): + return s.types.Float + elif type(data) in [numpy.datetime64, pd._libs.tslibs.timestamps.Timestamp]: + return s.types.TIMESTAMP + elif column_name and 'id' in column_name: + return s.types.BigInteger + return s.types.String + + def _convert_float_nan_to_int(self, df): + for column in df.columns: + if ( + df[column].dtype == float + and ((df[column] % 1 == 0) | (df[column].isnull())).all() + ): + df[column] = df[column].astype("Int64").astype(object).where( + pd.notnull(df[column]), None + ) + return df + + def _setup_postgres_merge(self, data_sets, sort=False): + + metadata = s.MetaData() + + data_tables = [] + + # Setup/create tables + for index, data in enumerate(data_sets): + + data_table = s.schema.Table(f"merge_data_{index}_{os.getpid()}", metadata) + df = pd.DataFrame(data) + + columns = sorted(list(df.columns)) if sort else df.columns + df = self._convert_float_nan_to_int(df) + for column in columns: + data_table.append_column( + s.schema.Column( + column, self.get_sqlalchemy_type( + df.fillna(method='bfill').iloc[0][column], column_name=column + ) + ) + ) + + data_tables.append(data_table) + + metadata.create_all(self.db, checkfirst=True) + + # Insert data to tables + for data_table, data in zip(data_tables, data_sets): + self.bulk_insert( + data_table, insert=data, increment_counter=False, convert_float_int=True + ) + + session = s.orm.Session(self.db) + self.logger.info("Session created for merge tables") + + return data_tables, metadata, session + + def _close_postgres_merge(self, metadata, session): + + session.close() + self.logger.info("Session closed") + + # metadata.reflect(self.db, only=[new_data_table.name, table_values_table.name]) + metadata.drop_all(self.db, checkfirst=True) + self.logger.info("Merge tables dropped") + + def _get_data_set_columns(self, data, columns): + if not len(data): + return [] + self.logger.info("Getting data set columns") + df = pd.DataFrame(data, columns=data[0].keys()) + final_columns = copy.deepcopy(columns) + for column in columns: + if '.' not in column: + continue + root = column.split('.')[0] + if root not in df.columns: + df[root] = None + expanded_column = pd.DataFrame( + df[root].where(df[root].notna(), lambda x: [{}]).tolist() + ) + expanded_column.columns = [ + f'{root}.{attribute}' for attribute in expanded_column.columns + ] + if column not in expanded_column.columns: + expanded_column[column] = None + final_columns += list(expanded_column.columns) + try: + df = df.join(expanded_column) + except ValueError: + # columns already added (happens if trying to expand the same column twice) + # TODO: Catch this before by only looping unique prefixs? + self.logger.info("Columns have already been added, moving on...") + pass + self.logger.info(final_columns) + self.logger.info(list(set(final_columns))) + self.logger.info("Finished getting data set columns") + return df[list(set(final_columns))].to_dict(orient='records') + + + #table_pkey isn't used in this function don't know why it is here. + #TODO: Figure out what types this expects and what types it returns + def organize_needed_data( + self, new_data, table_values, table_pkey=None, action_map={}, in_memory=True + ): + + if len(table_values) == 0: + return new_data, [] + + if len(new_data) == 0: + return [], [] + + need_insertion = pd.DataFrame() + need_updates = pd.DataFrame() + + if not in_memory: + + new_data_columns = action_map['insert']['source'] + table_value_columns = action_map['insert']['augur'] + if 'update' in action_map: + new_data_columns += action_map['update']['source'] + table_value_columns += action_map['update']['augur'] + + (new_data_table, table_values_table), metadata, session = self._setup_postgres_merge( + [ + self._get_data_set_columns(new_data, new_data_columns), + self._get_data_set_columns(table_values, table_value_columns) + ] + ) + + need_insertion = pd.DataFrame(session.query(new_data_table).join(table_values_table, + eval( + ' and '.join([ + f"table_values_table.c.{table_column} == new_data_table.c.{source_column}" \ + for table_column, source_column in zip(action_map['insert']['augur'], + action_map['insert']['source']) + ]) + ), isouter=True).filter( + table_values_table.c[action_map['insert']['augur'][0]] == None + ).all(), columns=table_value_columns) + + self.logger.info("need_insertion calculated successfully") + + need_updates = pd.DataFrame(columns=table_value_columns) + if 'update' in action_map: + need_updates = pd.DataFrame(session.query(new_data_table).join(table_values_table, + s.and_( + eval(' and '.join([f"table_values_table.c.{table_column} == new_data_table.c.{source_column}" for \ + table_column, source_column in zip(action_map['insert']['augur'], action_map['insert']['source'])])), + + eval(' and '.join([f"table_values_table.c.{table_column} != new_data_table.c.{source_column}" for \ + table_column, source_column in zip(action_map['update']['augur'], action_map['update']['source'])])) + ) ).all(), columns=table_value_columns) + self.logger.info("need_updates calculated successfully") + + self._close_postgres_merge(metadata, session) + + new_data_df = pd.DataFrame(new_data) + + need_insertion, new_data_df = self.sync_df_types( + need_insertion, new_data_df, table_value_columns, new_data_columns + ) + need_insertion = need_insertion.merge( + new_data_df, how='inner', left_on=table_value_columns, right_on=new_data_columns + ) + + self.logger.info( + f"Table needs {len(need_insertion)} insertions and " + f"{len(need_updates)} updates.\n") + + else: + #create panda tabluar data from the keys of the passed table values + table_values_df = pd.DataFrame(table_values, columns=table_values[0].keys()) + new_data_df = pd.DataFrame(new_data).dropna(subset=action_map['insert']['source']) + + new_data_df, table_values_df = self.sync_df_types(new_data_df, table_values_df, + action_map['insert']['source'], action_map['insert']['augur']) + + #Throwing value errors. 'cannot use name of an existing column for indicator column' + + try: + need_insertion = new_data_df.merge(table_values_df, suffixes=('','_table'), + how='outer', indicator=True, left_on=action_map['insert']['source'], + right_on=action_map['insert']['augur']).loc[lambda x : x['_merge']=='left_only'] + except ValueError as e: + + #Log the error, try to merge again without label to avoid ValueError + self.logger.warning(f"Error thrown during pandas merge: {e}") + need_insertion = new_data_df.merge(table_values_df, suffixes=('','_table'), + how='outer', indicator=False, left_on=action_map['insert']['source'], + right_on=action_map['insert']['augur']).loc[lambda x : x['_merge']=='left_only'] + + + + if 'update' in action_map: + new_data_df, table_values_df = self.sync_df_types(new_data_df, table_values_df, + action_map['update']['source'], action_map['update']['augur']) + + partitions = math.ceil(len(new_data_df) / 1000) + attempts = 0 + while attempts < 50: + try: + need_updates = pd.DataFrame() + self.logger.info(f"Trying {partitions} partitions\n") + for sub_df in numpy.array_split(new_data_df, partitions): + self.logger.info(f"Trying a partition, len {len(sub_df)}\n") + need_updates = pd.concat([ need_updates, sub_df.merge(table_values_df, left_on=action_map['insert']['source'], + right_on=action_map['insert']['augur'], suffixes=('','_table'), how='inner', + indicator=False).merge(table_values_df, left_on=action_map['update']['source'], + right_on=action_map['update']['augur'], suffixes=('','_table'), how='outer', + indicator=True).loc[lambda x : x['_merge']=='left_only'] ]) + self.logger.info(f"need_updates merge: {len(sub_df)} worked\n") + break + + except MemoryError as e: + self.logger.info(f"new_data ({sub_df.shape}) is too large to allocate memory for " + + f"need_updates df merge.\nMemoryError: {e}\nTrying again with {partitions + 1} partitions...\n") + partitions += 1 + attempts += 1 + # self.logger.info(f"End attempt # {attempts}\n") + if attempts >= 50: + self.loggger.info("Max need_updates merge attempts exceeded, cannot perform " + + "updates on this repo.\n") + else: + need_updates = need_updates.drop([column for column in list(need_updates.columns) if \ + column not in action_map['update']['augur'] and column not in action_map['insert']['augur']], + axis='columns') + + for column in action_map['insert']['augur']: + need_updates[f'b_{column}'] = need_updates[column] + + need_updates = need_updates.drop([column for column in action_map['insert']['augur']], axis='columns') + + return need_insertion.to_dict('records'), need_updates.to_dict('records') + + + def assign_tuple_action(self, new_data, table_values, update_col_map, duplicate_col_map, table_pkey, value_update_col_map={}): + """ DEPRECATED + Include an extra key-value pair on each element of new_data that represents + the action that should be taken with this element (i.e. 'need_insertion') + + :param new_data: List of dictionaries, data to be assigned an action to + :param table_values: Pandas DataFrame, existing data in the database to check + what action should be taken on the new_data depending on the presence of + each element in this DataFrame + :param update_col_map: Dictionary, maps the column names of the source data + to the field names in our database for columns that should be checked for + updates (if source data value != value in existing database row, then an + update is needed). Key is source data column name, value is database field name. + Example: {'id': 'gh_issue_id'} + :param duplicate_col_map: Dictionary, maps the column names of the source data + to the field names in our database for columns that should be checked for + duplicates (if source data value == value in existing database row, then this + element is a duplicate and would not need an insertion). Key is source data + column name, value is database field name. Example: {'id': 'gh_issue_id'} + :param table_pkey: String, the field name of the primary key of the table in + the database that we are checking the table_values for. + :param value_update_col_map: Dictionary, sometimes we add a new field to a table, + and we want to trigger an update of that row in the database even if all of the + data values are the same and would not need an update ordinarily. Checking for + a specific existing value in the database field allows us to do this. The key is the + name of the field in the database we are checking for a specific value to trigger + an update, the value is the value we are checking for equality to trigger an update. + Example: {'cntrb_id': None} + :return: List of dictionaries, contains all the same elements of new_data, except + each element now has an extra key-value pair with the key being 'flag', and + the value being 'need_insertion', 'need_update', or 'none' + """ + need_insertion_count = 0 + need_update_count = 0 + + if type(table_values) == list: + if len(table_values) > 0: + table_values = pd.DataFrame(table_values, columns=table_values[0].keys()) + else: + table_values = pd.DataFrame(table_values) + + for i, obj in enumerate(new_data): + if type(obj) != dict: + new_data[i] = {'flag': 'none'} + continue + + obj['flag'] = 'none' # default of no action needed + existing_tuple = None + for db_dupe_key in list(duplicate_col_map.keys()): + + if table_values.isin([obj[duplicate_col_map[db_dupe_key]]]).any().any(): + if table_values[table_values[db_dupe_key].isin( + [obj[duplicate_col_map[db_dupe_key]]])].to_dict('records'): + + existing_tuple = table_values[table_values[db_dupe_key].isin( + [obj[duplicate_col_map[db_dupe_key]]])].to_dict('records')[0] + continue + + obj['flag'] = 'need_insertion' + need_insertion_count += 1 + break + + if obj['flag'] == 'need_insertion': + continue + + if not existing_tuple: + self.logger.info('An existing tuple was not found for this data ' + + 'point and we have reached the check-updates portion of assigning ' + + 'tuple action, so we will now move to next data point\n') + continue + + # If we need to check the values of the existing tuple to determine if an update is needed + for augur_col, value_check in value_update_col_map.items(): + not_nan_check = not (math.isnan(value_check) and math.isnan(existing_tuple[augur_col])) if value_check is not None else True + if existing_tuple[augur_col] != value_check and not_nan_check: + continue + self.logger.info("Found a tuple that needs an update for column: {}\n".format(augur_col)) + obj['flag'] = 'need_update' + obj['pkey'] = existing_tuple[table_pkey] + need_update_count += 1 + + if obj['flag'] == 'need_update': + self.logger.info('Already determined that current tuple needs update, skipping checking further updates. ' + 'Moving to next tuple.\n') + continue + + # Now check the existing tuple's values against the response values to determine if an update is needed + for col in update_col_map.keys(): + if update_col_map[col] not in obj: + continue + if obj[update_col_map[col]] == existing_tuple[col]: + continue + self.logger.info("Found a tuple that needs an update for column: {}\n".format(col)) + obj['flag'] = 'need_update' + self.logger.info(existing_tuple) + obj['pkey'] = existing_tuple[table_pkey] + need_update_count += 1 + + self.logger.info("Page recieved has {} tuples, while filtering duplicates this ".format(len(new_data)) + + "was reduced to {} tuples, and {} tuple updates are needed.\n".format(need_insertion_count, need_update_count)) + return new_data + + def check_duplicates(self, new_data, table_values, key): + """ Filters what items of the new_data json (list of dictionaries) that are not + present in the table_values df + + :param new_data: List of dictionaries, new data to filter duplicates out of + :param table_values: Pandas DataFrame, existing data to check what data is already + present in the database + :param key: String, key of each dict in new_data whose value we are checking + duplicates with + :return: List of dictionaries, contains elements of new_data that are not already + present in the database + """ + need_insertion = [] + for obj in new_data: + if type(obj) != dict: + continue + if not table_values.isin([obj[key]]).any().any(): + need_insertion.append(obj) + self.logger.info("Page recieved has {} tuples, while filtering duplicates this ".format(str(len(new_data))) + + "was reduced to {} tuples.\n".format(str(len(need_insertion)))) + return need_insertion + + + def get_max_id(self, table, column, default=25150, operations_table=False): + """ Gets the max value (usually used for id/pk's) of any Integer column + of any table + + :param table: String, the table that consists of the column you want to + query a max value for + :param column: String, the column that you want to query the max value for + :param default: Integer, if there are no values in the + specified column, the value of this parameter will be returned + :param operations_table: Boolean, if True, this signifies that the table/column + that is wanted to be queried is in the augur_operations schema rather than + the augur_data schema. Default False + :return: Integer, the max value of the specified column/table + """ + maxIdSQL = s.sql.text(""" + SELECT max({0}.{1}) AS {1} + FROM {0} + """.format(table, column)) + db = self.db if not operations_table else self.helper_db + rs = pd.read_sql(maxIdSQL, db, params={}) + if rs.iloc[0][column] is not None: + max_id = int(rs.iloc[0][column]) + 1 + self.logger.info("Found max id for {} column in the {} table: {}\n".format(column, table, max_id)) + else: + max_id = default + self.logger.warning("Could not find max id for {} column in the {} table... " + + "using default set to: {}\n".format(column, table, max_id)) + return max_id + + def get_table_values(self, cols, tables, where_clause=""): + """ Can query all values of any column(s) from any table(s) + with an optional where clause + + :param cols: List of Strings, column(s) that user wants to query + :param tables: List of Strings, table(s) that user wants to query + :param where_clause: String, optional where clause to filter the values + queried + :return: Pandas DataFrame, contains all values queried in the columns, tables, and + optional where clause provided + """ + table_str = tables[0] + del tables[0] + + col_str = cols[0] + del cols[0] + + for table in tables: + table_str += ", " + table + for col in cols: + col_str += ", " + col + + table_values_sql = s.sql.text(""" + SELECT {} FROM {} {} + """.format(col_str, table_str, where_clause)) + self.logger.info("Getting table values with the following PSQL query: \n{}\n".format( + table_values_sql)) + values = pd.read_sql(table_values_sql, self.db, params={}) + return values + + + def bulk_insert( + self, table, insert=[], update=[], unique_columns=[], update_columns=[], + max_attempts=3, attempt_delay=3, increment_counter=True, convert_float_int=False + ): + """ Performs bulk inserts/updates of the given data to the given table + + :param table: String, name of the table that we are inserting/updating rows + :param insert: List of dicts, data points to insert + :param update: List of dicts, data points to update, only needs key/value + pairs of the update_columns and the unique_columns + :param unique_columns: List of strings, column names that would uniquely identify any + given data point + :param update_columns: List of strings, names of columns that are being updated + :param max_attempts: Integer, number of attempts to perform on inserting/updating + before moving on + :param attempt_delay: Integer, number of seconds to wait in between attempts + :returns: SQLAlchemy database execution response object(s), contains metadata + about number of rows inserted etc. This data is not often used. + """ + + self.logger.info( + f"{len(insert)} insertions are needed and {len(update)} " + f"updates are needed for {table}" + ) + + update_result = None + insert_result = None + + if len(update) > 0: + attempts = 0 + update_start_time = time.time() + while attempts < max_attempts: + try: + update_result = self.db.execute( + table.update().where( + eval( + ' and '.join( + [ + f"self.{table}_table.c.{key} == bindparam('b_{key}')" + for key in unique_columns + ] + ) + ) + ).values( + {key: key for key in update_columns} + ), + update + ) + if increment_counter: + self.update_counter += update_result.rowcount + self.logger.info( + f"Updated {update_result.rowcount} rows in " + f"{time.time() - update_start_time} seconds" + ) + break + except Exception as e: + self.logger.info(f"Warning! Error bulk updating data: {e}") + time.sleep(attempt_delay) + attempts += 1 + + if len(insert) > 0: + + insert_start_time = time.time() + + def psql_insert_copy(table, conn, keys, data_iter): + """ + Execute SQL statement inserting data + + Parameters + ---------- + table : pandas.io.sql.SQLTable + conn : sqlalchemy.engine.Engine or sqlalchemy.engine.Connection + keys : list of str + Column names + data_iter : Iterable that iterates the values to be inserted + """ + # gets a DBAPI connection that can provide a cursor + dbapi_conn = conn.connection + with dbapi_conn.cursor() as curs: + s_buf = io.StringIO() + writer = csv.writer(s_buf) + writer.writerows(data_iter) + s_buf.seek(0) + + columns = ', '.join('"{}"'.format(k) for k in keys) + if table.schema: + table_name = '{}.{}'.format(table.schema, table.name) + else: + table_name = table.name + + sql = 'COPY {} ({}) FROM STDIN WITH CSV'.format( + table_name, columns) + #This causes the github worker to throw an error with pandas + #cur.copy_expert(sql=sql, file=self.text_clean(s_buf)) + # s_buf_encoded = s_buf.read().encode("UTF-8") + #self.logger.info(f"this is the sbuf_encdoded {s_buf_encoded}") + try: + curs.copy_expert(sql=sql, file=s_buf) + except Exception as e: + self.logger.info(f"this is the error: {e}.") + + + df = pd.DataFrame(insert) + if convert_float_int: + df = self._convert_float_nan_to_int(df) + df.to_sql( + schema = self.db_schema, + name=table.name, + con=self.db, + if_exists="append", + index=False, + method=psql_insert_copy + ) + if increment_counter: + self.insert_counter += len(insert) + + self.logger.info( + f"Inserted {len(insert)} rows in {time.time() - insert_start_time} seconds " + "thanks to postgresql's COPY FROM CSV! :)" + ) + + return insert_result, update_result + + def text_clean(self, data, field): + """ "Cleans" the provided field of each dict in the list of dicts provided + by removing NUL (C text termination) characters + Example: "\u0000" + + :param data: List of dicts + :param field: String + :returns: Same data list with each element's field updated with NUL characters + removed + """ + #self.logger.info(f"Original data point{field:datapoint[field]}") + + return [ + { + **data_point, + #field: data_point[field].replace("\x00", "\uFFFD") + #self.logger.info(f"Null replaced data point{field:datapoint[field]}") + ## trying to use standard python3 method for text cleaning here. + # This was after `data_point[field]` for a while as `, "utf-8"` and did not work + # Nay, it cause silent errors without insert; or was part of that hot mess. + # field: bytes(data_point[field]).decode("utf-8", "ignore") + field: bytes(data_point[field], "utf-8").decode("utf-8", "ignore").replace("\x00", "\uFFFD") + #0x00 + } for data_point in data + ] + + # def text_clean(self, data, field): + # """ "Cleans" the provided field of each dict in the list of dicts provided + # by removing NUL (C text termination) characters + # Example: "\u0000" + + # :param data: List of dicts + # :param field: String + # :returns: Same data list with each element's field updated with NUL characters + # removed + # """ + # return [ + # { + # **data_point, + # field: data_point[field].replace("\x00", "\uFFFD") + # } for data_point in data + # ] + + def _add_nested_columns(self, df, column_names): + # todo: support deeper nests (>1) and only expand necessary columns + # todo: merge with _get_data_set_columns + + for column in column_names: + if '.' not in column: + continue + root = column.split('.')[0] + if root not in df.columns: + df[root] = None + expanded_column = pd.DataFrame( + df[root].where(df[root].notna(), lambda x: [{}]).tolist() + ) + expanded_column.columns = [ + f'{root}.{attribute}' for attribute in expanded_column.columns + ] + if column not in expanded_column.columns: + expanded_column[column] = None + try: + df = df.join(expanded_column) + except ValueError: + # columns already added (happens if trying to expand the same column twice) + # TODO: Catch this before by only looping unique prefixs? + pass + + return df + + + def enrich_data_primary_keys( + self, source_data, table, gh_merge_fields, augur_merge_fields, in_memory=False + ): + + self.logger.info("Preparing to enrich data.\n") + + if len(source_data) == 0: + self.logger.info("There is no source data to enrich.\n") + return source_data + + source_df = self._add_nested_columns(pd.DataFrame(source_data), gh_merge_fields) + + if not in_memory: + + source_pk_columns = list(source_df.columns) + source_pk_columns.insert(0, list(table.primary_key)[0].name) + + (source_table, ), metadata, session = self._setup_postgres_merge( + # [self._get_data_set_columns(source_data, gh_merge_fields)] + [source_df.to_dict(orient='records')] + ) + + source_pk = pd.DataFrame( + + # eval( + # "session.query(" + # + ", ".join( + # [ + # f"table.c['{column}']" for column in [list(table.primary_key)[0].name] + # + augur_merge_fields + # ] + # ) + # + ")" + # ) + session.query( + table.c[list(table.primary_key)[0].name], + source_table + # eval( + # f"table.c['{list(table.primary_key)[0].name}'], " + # + ", ".join( + # [ + # f"source_table.c['{column}']" for column in source_pk_columns + # ] + # ) + # ) + ).join( + source_table, + eval( + ' and '.join( + [ + f"table.c['{table_column}'] == source_table.c['{source_column}']" + for table_column, source_column in zip( + augur_merge_fields, gh_merge_fields + ) + ] + ) + ) + ).all(), columns=source_pk_columns # gh_merge_fields + ) + + source_pk = self._eval_json_columns(source_pk) + + # source_pk, source_df = self.sync_df_types( + # source_pk, source_df, gh_merge_fields, gh_merge_fields + # ) + # source_pk = source_pk.merge(source_df, how='inner', on=gh_merge_fields) + + self.logger.info("source_pk calculated successfully") + + self._close_postgres_merge(metadata, session) + self.logger.info("Done") + + else: + + # s_tuple = s.tuple_([table.c[field] for field in augur_merge_fields]) + # s_tuple.__dict__['clauses'] = s_tuple.__dict__['clauses'][0].effective_value + # s_tuple.__dict__['_type_tuple'] = [] + # for field in augur_merge_fields: + # s_tuple.__dict__['_type_tuple'].append(table.c[field].__dict__['type']) + + # try: + # primary_keys = self.db.execute(s.sql.select( + # [table.c[field] for field in augur_merge_fields] + [table.c[list(table.primary_key)[0].name]] + # ).where( + # s_tuple.in_( + + # list(source_df[gh_merge_fields].itertuples(index=False)) + # ))).fetchall() + # except psycopg2.errors.StatementTooComplex as e: + self.logger.info("Retrieve pk statement too complex, querying all instead " + + "and performing partitioned merge.\n") + all_primary_keys = self.db.execute(s.sql.select( + [table.c[field] for field in augur_merge_fields] + [table.c[list(table.primary_key)[0].name]] + )).fetchall() + self.logger.info("Queried all") + all_primary_keys_df = pd.DataFrame(all_primary_keys, + columns=augur_merge_fields + [list(table.primary_key)[0].name]) + self.logger.info("Converted to df") + + source_df, all_primary_keys_df = self.sync_df_types(source_df, all_primary_keys_df, + gh_merge_fields, augur_merge_fields) + + self.logger.info("Synced df types") + + partitions = math.ceil(len(source_df) / 600)#1000) + attempts = 0 + while attempts < 50: + try: + source_pk = pd.DataFrame() + self.logger.info(f"Trying {partitions} partitions of new data, {len(all_primary_keys_df)} " + + "pk data points to enrich\n") + for sub_df in numpy.array_split(source_df, partitions): + self.logger.info(f"Trying a partition, len {len(sub_df)}\n") + source_pk = pd.concat([ source_pk, sub_df.merge(all_primary_keys_df, suffixes=('','_table'), + how='inner', left_on=gh_merge_fields, right_on=augur_merge_fields) ]) + self.logger.info(f"source_pk merge: {len(sub_df)} worked\n") + break + + except MemoryError as e: + self.logger.info(f"new_data ({sub_df.shape}) is too large to allocate memory for " + + f"source_pk df merge.\nMemoryError: {e}\nTrying again with {partitions + 1} partitions...\n") + partitions += 1 + attempts += 1 + # self.logger.info(f"End attempt # {attempts}\n") + if attempts >= 50: + self.logger.info("Max source_pk merge attempts exceeded, cannot perform " + + "updates on this repo.\n") + else: + self.logger.info(f"Data enrichment successful, length: {len(source_pk)}\n") + + # all_primary_keys_df.to_json(path_or_buf='all_primary_keys_df.json', orient='records') + + # all_primary_keys_dask_df = dd.from_pandas(all_primary_keys_df, chunksize=1000) + # source_dask_df = dd.from_pandas(source_df, chunksize=1000) + # result = json.loads(source_dask_df.merge(all_primary_keys_dask_df, suffixes=('','_table'), + # how='inner', left_on=gh_merge_fields, right_on=augur_merge_fields).compute( + # ).to_json(default_handler=str, orient='records')) + return source_pk.to_dict(orient='records') + + # if len(primary_keys) > 0: + # primary_keys_df = pd.DataFrame(primary_keys, + # columns=augur_merge_fields + [list(table.primary_key)[0].name]) + # else: + # self.logger.info("There are no inserted primary keys to enrich the source data with.\n") + # return [] + + # source_df, primary_keys_df = self.sync_df_types(source_df, primary_keys_df, + # gh_merge_fields, augur_merge_fields) + + # source_df = dd.from_pandas(source_df, chunksize=1000) + # primary_keys_df = dd.from_pandas(primary_keys_df, chunksize=1000) + + # result = json.loads(source_df.merge(primary_keys_df, suffixes=('','_table'), + # how='inner', left_on=gh_merge_fields, right_on=augur_merge_fields).compute().to_json( + # default_handler=str, orient='records')) + + # self.logger.info("Data enrichment successful.\n") + # return result + + def _eval_json_columns(self, df): + if not len(df): + return df + for column in df.columns: + first_valid_value = df.fillna(method='bfill').iloc[0][column] + if isinstance(first_valid_value, str): + if ( + first_valid_value[0] == '{' and first_valid_value[-1] == '}' + or first_valid_value[0] == '[' and first_valid_value[-1] == ']' + ): + df[column] = df[column].fillna("'null_placeholder'").apply(eval).replace( + "null_placeholder", numpy.nan + ).where(df[column].notna(), lambda x: [{}]) + return df + + def new_organize_needed_data( + self, new_data, augur_table=None, where_clause=True, action_map={} + ): + + self.logger.info(f"Beginning to organize needed data from {len(new_data)} data points...") + + if len(new_data) == 0: + return [], [] + + new_data_columns = pd.DataFrame(new_data).columns + + # # new_data_columns = copy.deepcopy(action_map['insert']['source']) + # table_value_columns = copy.deepcopy(action_map['insert']['augur']) + # + # if 'update' in action_map: + # # new_data_columns += action_map['update']['source'] + # table_value_columns += action_map['update']['augur'] + + (new_data_table, ), metadata, session = self._setup_postgres_merge( + [ + new_data + # self._get_data_set_columns(new_data, new_data_columns) + ] + ) + + need_insertion = pd.DataFrame( + session.query(new_data_table).join( + augur_table, + eval( + ' and '.join( + [ + f"augur_table.c['{table_column}'] == new_data_table.c['{source_column}']" + for table_column, source_column in zip( + action_map['insert']['augur'], action_map['insert']['source'] + ) + ] + ) + ), isouter=True + ).filter( + augur_table.c[action_map['insert']['augur'][0]] == None + ).all(), columns=new_data_columns # table_value_columns + ) + + need_insertion = self._eval_json_columns(need_insertion) + + # new_data_df = pd.DataFrame(new_data) + + # need_insertion, new_data_df = self.sync_df_types( + # need_insertion, new_data_df, table_value_columns, new_data_columns + # ) + # need_insertion = need_insertion.merge( + # new_data_df, how='inner', left_on=table_value_columns, right_on=new_data_columns + # ) + + self.logger.info("need_insertion calculated successfully") + + need_updates = pd.DataFrame(columns=new_data_columns) + if 'update' in action_map: + need_updates = pd.DataFrame( + session.query(new_data_table).join( + augur_table, + s.and_( + eval( + ' and '.join( + [ + ( + f"augur_table.c.{table_column} " + f"== new_data_table.c.{source_column}" + ) for table_column, source_column in zip( + action_map['insert']['augur'], + action_map['insert']['source'] + ) + ] + ) + ), + + eval( + ' and '.join( + [ + ( + f"augur_table.c.{table_column} " + f"!= new_data_table.c.{source_column}" + ) for table_column, source_column in zip( + action_map['update']['augur'], + action_map['update']['source'] + ) + ] + ) + ) + ) + ).all(), columns=new_data_columns + ) + self.logger.info("need_updates calculated successfully") + + self._close_postgres_merge(metadata, session) + + self.logger.info( + f"Table needs {len(need_insertion)} insertions and " + f"{len(need_updates)} updates.\n" + ) + + return need_insertion.to_dict('records'), need_updates.to_dict('records') + + def get_relevant_columns(self, table, action_map={}): + columns = copy.deepcopy(action_map['update']['augur']) if 'update' in action_map else [] + columns += action_map['value_update']['augur'] if 'value_update' in action_map else [] + columns += action_map['insert']['augur'] if 'insert' in action_map else [] + return [table.c[column] for column in + columns + [list(table.primary_key)[0].name]] + + def retrieve_tuple(self, key_values, tables): + table_str = tables[0] + del tables[0] + + key_values_items = list(key_values.items()) + for col, value in [key_values_items[0]]: + where_str = col + " = '" + value + "'" + del key_values_items[0] + + for col, value in key_values_items: + where_str += ' AND ' + col + " = '" + value + "'" + for table in tables: + table_str += ", " + table + + retrieveTupleSQL = s.sql.text(""" + SELECT * FROM {} WHERE {} + """.format(table_str, where_str)) + values = json.loads( + pd.read_sql(retrieveTupleSQL, self.db, params={}).to_json(orient="records") + ) + return values