<commit_before><?xml version="1.0" encoding="UTF-8"?>
<?eclipse version="3.2"?>
<!--
 * DBeaver - Universal Database Manager
 * Copyright (C) 2017 <NAME> (<EMAIL>) 
 * Copyright (C) 2010-2017 <NAME> (<EMAIL>)
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
  -->
  
<plugin>

    <extension-point id="org.jkiss.dbeaver.postgresql.serverType" name="PostgreSQL Server Type" schema="schema/org.jkiss.dbeaver.postgresql.serverType.exsd"/>

    <extension point="org.jkiss.dbeaver.postgresql.serverType">
        <serverType id="postgresql" name="PostgreSQL" class="org.jkiss.dbeaver.ext.postgresql.model.impls.PostgreServerPostgreSQL" logo="icons/postgresql_logo.png"/>
        <serverType id="redshift" name="Redshift" class="org.jkiss.dbeaver.ext.postgresql.model.impls.redshift.PostgreServerRedshift" logo="icons/redshift_logo.png" defaultDatbase="dev" defaultUser="awsuser" customURL="true"/>
        <serverType id="timescale" name="Timescale" class="org.jkiss.dbeaver.ext.postgresql.model.impls.PostgreServerTimescale" logo="icons/timescale_logo.png"/>
        <serverType id="yellowbrick" name="Yellowbrick" class="org.jkiss.dbeaver.ext.postgresql.model.impls.yellowbrick.PostgreServerYellowBrick" logo="icons/yellowbrick_logo.png"/>
        <serverType id="cockroach" name="Cockroach" class="org.jkiss.dbeaver.ext.postgresql.model.impls.PostgreServerCockroachDB" logo="icons/cockroach_logo.png" defaultDatbase="system" defaultUser="root"/>
    </extension>

    <!--
        PostgreSQL extension
     -->
    <extension point="org.jkiss.dbeaver.generic.meta">
        <meta id="postgresql" class="org.jkiss.dbeaver.ext.postgresql.model.generic.PostgreMetaModel" driverClass="org.postgresql.Driver,com.amazon.redshift.jdbc4.Driver,com.amazon.redshift.jdbc41.Driver,com.amazon.redshift.jdbc42.Driver"/>
    </extension>

    <extension point="org.jkiss.dbeaver.dataSourceProvider">
        <datasource
                class="org.jkiss.dbeaver.ext.postgresql.PostgreDataSourceProvider"
                description="%datasource.postgresql.description"
                id="postgresql"
                label="PostgreSQL"
                icon="icons/postgresql_icon.png">
            <tree path="postgresql" label="PostgreSQL data source">
                <items label="%tree.database.node.name" path="database" property="databases" icon="#database">
                    <folder type="org.jkiss.dbeaver.ext.postgresql.model.PostgreSchema" label="%tree.schemas.node.name" icon="#folder_schema" description="Schemas">
                        <items label="%tree.schema.node.name" path="schema" property="schemas" icon="#schema">
                            <icon if="object.utility || object.external" icon="#schema_util"/>
                            <icon if="object.system" icon="#schema_system"/>
                            <folder type="org.jkiss.dbeaver.ext.postgresql.model.PostgreTable" label="%tree.tables.node.name" icon="#folder_table" description="Tables">
                                <items label="%tree.table.node.name" path="table" property="tables" icon="#table">
                                    <folder type="org.jkiss.dbeaver.ext.postgresql.model.PostgreTableColumn" label="%tree.columns.node.name" icon="#columns" description="Table columns">
                                        <items label="%tree.column.node.name" path="attribute" property="attributes" icon="#column">
                                        </items>
                                    </folder>
                                    <folder type="org.jkiss.dbeaver.ext.postgresql.model.PostgreTableConstraint" label="%tree.constraints.node.name" icon="#constraints" description="Table unique keys" visibleIf="!object.view &amp;&amp; !object.external">
                                        <items label="%tree.constraint.node.name" path="uniqueKey" property="constraints" icon="#unique-key">
                                            <items label="%tree.constraint.columns.node.name" itemLabel="%tree.column.node.name" path="column" property="attributeReferences" navigable="false" inline="true">
                                            </items>
                                        </items>
                                    </folder>
                                    <folder type="org.jkiss.dbeaver.ext.postgresql.model.PostgreTableForeignKey" label="%tree.foreign_keys.node.name" icon="#foreign-keys" description="Table foreign keys">
                                        <items label="%tree.foreign_key.node.name" path="association" property="foreignKeys" icon="#foreign-key">
                                            <items label="%tree.foreign_key_columns.node.name" itemLabel="%tree.column.node.name" path="column" property="attributeReferences" navigable="false" inline="true">
                                            </items>
                                        </items>
                                    </folder>
                                    <folder type="org.jkiss.dbeaver.ext.postgresql.model.PostgreIndex" label="%tree.indexes.node.name" icon="#indexes" description="Table indexes" visibleIf="object.dataSource.serverType.supportsIndexes()">
                                        <items label="%tree.index.node.name" path="index" property="indexes" icon="#index">
                                            <items label="%tree.index_columns.node.name" path="column" property="attributeReferences" icon="#column" navigable="false" inline="true">
                                            </items>
                                        </items>
                                    </folder>
                                    <folder label="%tree.references.node.name" icon="#references" description="Table references" virtual="true">
                                        <items label="%tree.reference.node.name" path="reference" property="references" icon="#reference" virtual="true">
                                            <items label="%tree.reference_columns.node.name" itemLabel="%tree.column.node.name" path="column" property="attributeReferences" navigable="false" inline="true" virtual="true">
                                            </items>
                                        </items>
                                    </folder>
                                    <folder type="org.jkiss.dbeaver.ext.postgresql.model.PostgreTablePartition" label="%tree.partitions.node.name" icon="#folder_table" description="Table partitions" virtual="true" visibleIf="object.dataSource.serverType.supportsPartitions()">
                                        <items label="%tree.partitions.node.name" path="partition" property="partitions" icon="#partition" virtual="true" recursive="../..">
                                        </items>
                                    </folder>
                                    <folder type="org.jkiss.dbeaver.ext.postgresql.model.PostgreTableReal" label="%tree.tablechildren.node.name" icon="#folder_table" description="Table children" virtual="true" visibleIf="object.hasSubClasses()">
                                        <items label="%tree.tablechildren.node.name" path="subTables" property="subTables" icon="#table" virtual="true" recursive="../.." >
                                        </items>
                                    </folder>
                                    <folder type="org.jkiss.dbeaver.ext.postgresql.model.PostgreTrigger" label="%tree.triggers.node.name" icon="#triggers" description="Table triggers" visibleIf="object.dataSource.serverType.supportsTriggers()">
                                        <items label="%tree.trigger.node.name" path="trigger" property="triggers" icon="#trigger"/>
                                    </folder>
                                    <folder type="org.jkiss.dbeaver.ext.postgresql.model.PostgreRole" label="%tree.rules.node.name" icon="#rules" description="Table rules" visibleIf="object.dataSource.serverType.supportsRules()">
                                        <items label="%tree.rule.node.name" path="rule" property="rules" icon="#rule"/>
                                    </folder>
                                </items>
                            </folder>
                            <folder type="org.jkiss.dbeaver.ext.postgresql.model.PostgreView" label="%tree.tviews.node.name" icon="#folder_view" description="Views">
                                <items label="%tree.tview.node.name" path="view" property="views" icon="#view">
                                    <folder type="org.jkiss.dbeaver.ext.postgresql.model.PostgreAttribute" label="%tree.columns.node.name" icon="#columns" description="View columns">
                                        <items label="%tree.column.node.name" path="attribute" property="attributes" icon="#column">
                                        </items>
                                    </folder>
                                    <folder type="org.jkiss.dbeaver.ext.postgresql.model.PostgreTrigger" label="%tree.triggers.node.name" icon="#triggers" description="View triggers" visibleIf="object.dataSource.serverType.supportsTriggers()">
                                        <items label="%tree.trigger.node.name" path="trigger" property="triggers" icon="#trigger"/>
                                    </folder>
                                    <folder type="org.jkiss.dbeaver.ext.postgresql.model.PostgreRole" label="%tree.rules.node.name" icon="#rules" description="Table rules" visibleIf="object.dataSource.serverType.supportsRules()">
                                        <items label="%tree.rule.node.name" path="rule" property="rules" icon="#rule"/>
                                    </folder>
                                </items>
                            </folder>
                            <folder type="org.jkiss.dbeaver.ext.postgresql.model.PostgreMaterializedView" label="%tree.mviews.node.name" icon="#folder_view" description="Materialized views" visibleIf="object.dataSource.serverType.supportsMaterializedViews()">
                                <items label="%tree.mview.node.name" path="view" property="materializedViews" icon="#view">
                                    <folder type="org.jkiss.dbeaver.ext.postgresql.model.PostgreAttribute" label="%tree.columns.node.name" icon="#columns" description="View columns">
                                        <items label="%tree.column.node.name" path="attribute" property="attributes" icon="#column">
                                        </items>
                                    </folder>
                                    <folder type="org.jkiss.dbeaver.ext.postgresql.model.PostgreIndex" label="%tree.indexes.node.name" icon="#indexes" description="Table indexes">
                                        <items label="%tree.index.node.name" path="index" property="indexes" icon="#index">
                                            <items label="%tree.index_columns.node.name" path="column" property="attributeReferences" icon="#column" navigable="false" inline="true">
                                            </items>
                                        </items>
                                    </folder>
                                </items>
                            </folder>
                            <folder type="org.jkiss.dbeaver.ext.postgresql.model.PostgreIndex" label="%tree.indexes.node.name" icon="#indexes" description="Indexes" visibleIf="object.dataSource.serverType.supportsIndexes()">
                                <items icon="#index" label="%tree.index.node.name" path="index" property="indexes" virtual="true">
                                    <items icon="#column" label="%tree.index_columns.node.name" itemLabel="%tree.column.node.name" path="column" property="attributeReferences" inline="true" navigable="false" virtual="true"><commit_msg>Rule manager fix (typo)<commit_after><?xml version="1.0" encoding="UTF-8"?>
<?eclipse version="3.2"?>
<!--
 * DBeaver - Universal Database Manager
 * Copyright (C) 2017 <NAME> (<EMAIL>) 
 * Copyright (C) 2010-2017 <NAME> (<EMAIL>)
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
  -->
  
<plugin>

    <extension-point id="org.jkiss.dbeaver.postgresql.serverType" name="PostgreSQL Server Type" schema="schema/org.jkiss.dbeaver.postgresql.serverType.exsd"/>

    <extension point="org.jkiss.dbeaver.postgresql.serverType">
        <serverType id="postgresql" name="PostgreSQL" class="org.jkiss.dbeaver.ext.postgresql.model.impls.PostgreServerPostgreSQL" logo="icons/postgresql_logo.png"/>
        <serverType id="redshift" name="Redshift" class="org.jkiss.dbeaver.ext.postgresql.model.impls.redshift.PostgreServerRedshift" logo="icons/redshift_logo.png" defaultDatbase="dev" defaultUser="awsuser" customURL="true"/>
        <serverType id="timescale" name="Timescale" class="org.jkiss.dbeaver.ext.postgresql.model.impls.PostgreServerTimescale" logo="icons/timescale_logo.png"/>
        <serverType id="yellowbrick" name="Yellowbrick" class="org.jkiss.dbeaver.ext.postgresql.model.impls.yellowbrick.PostgreServerYellowBrick" logo="icons/yellowbrick_logo.png"/>
        <serverType id="cockroach" name="Cockroach" class="org.jkiss.dbeaver.ext.postgresql.model.impls.PostgreServerCockroachDB" logo="icons/cockroach_logo.png" defaultDatbase="system" defaultUser="root"/>
    </extension>

    <!--
        PostgreSQL extension
     -->
    <extension point="org.jkiss.dbeaver.generic.meta">
        <meta id="postgresql" class="org.jkiss.dbeaver.ext.postgresql.model.generic.PostgreMetaModel" driverClass="org.postgresql.Driver,com.amazon.redshift.jdbc4.Driver,com.amazon.redshift.jdbc41.Driver,com.amazon.redshift.jdbc42.Driver"/>
    </extension>

    <extension point="org.jkiss.dbeaver.dataSourceProvider">
        <datasource
                class="org.jkiss.dbeaver.ext.postgresql.PostgreDataSourceProvider"
                description="%datasource.postgresql.description"
                id="postgresql"
                label="PostgreSQL"
                icon="icons/postgresql_icon.png">
            <tree path="postgresql" label="PostgreSQL data source">
                <items label="%tree.database.node.name" path="database" property="databases" icon="#database">
                    <folder type="org.jkiss.dbeaver.ext.postgresql.model.PostgreSchema" label="%tree.schemas.node.name" icon="#folder_schema" description="Schemas">
                        <items label="%tree.schema.node.name" path="schema" property="schemas" icon="#schema">
                            <icon if="object.utility || object.external" icon="#schema_util"/>
                            <icon if="object.system" icon="#schema_system"/>
                            <folder type="org.jkiss.dbeaver.ext.postgresql.model.PostgreTable" label="%tree.tables.node.name" icon="#folder_table" description="Tables">
                                <items label="%tree.table.node.name" path="table" property="tables" icon="#table">
                                    <folder type="org.jkiss.dbeaver.ext.postgresql.model.PostgreTableColumn" label="%tree.columns.node.name" icon="#columns" description="Table columns">
                                        <items label="%tree.column.node.name" path="attribute" property="attributes" icon="#column">
                                        </items>
                                    </folder>
                                    <folder type="org.jkiss.dbeaver.ext.postgresql.model.PostgreTableConstraint" label="%tree.constraints.node.name" icon="#constraints" description="Table unique keys" visibleIf="!object.view &amp;&amp; !object.external">
                                        <items label="%tree.constraint.node.name" path="uniqueKey" property="constraints" icon="#unique-key">
                                            <items label="%tree.constraint.columns.node.name" itemLabel="%tree.column.node.name" path="column" property="attributeReferences" navigable="false" inline="true">
                                            </items>
                                        </items>
                                    </folder>
                                    <folder type="org.jkiss.dbeaver.ext.postgresql.model.PostgreTableForeignKey" label="%tree.foreign_keys.node.name" icon="#foreign-keys" description="Table foreign keys">
                                        <items label="%tree.foreign_key.node.name" path="association" property="foreignKeys" icon="#foreign-key">
                                            <items label="%tree.foreign_key_columns.node.name" itemLabel="%tree.column.node.name" path="column" property="attributeReferences" navigable="false" inline="true">
                                            </items>
                                        </items>
                                    </folder>
                                    <folder type="org.jkiss.dbeaver.ext.postgresql.model.PostgreIndex" label="%tree.indexes.node.name" icon="#indexes" description="Table indexes" visibleIf="object.dataSource.serverType.supportsIndexes()">
                                        <items label="%tree.index.node.name" path="index" property="indexes" icon="#index">
                                            <items label="%tree.index_columns.node.name" path="column" property="attributeReferences" icon="#column" navigable="false" inline="true">
                                            </items>
                                        </items>
                                    </folder>
                                    <folder label="%tree.references.node.name" icon="#references" description="Table references" virtual="true">
                                        <items label="%tree.reference.node.name" path="reference" property="references" icon="#reference" virtual="true">
                                            <items label="%tree.reference_columns.node.name" itemLabel="%tree.column.node.name" path="column" property="attributeReferences" navigable="false" inline="true" virtual="true">
                                            </items>
                                        </items>
                                    </folder>
                                    <folder type="org.jkiss.dbeaver.ext.postgresql.model.PostgreTablePartition" label="%tree.partitions.node.name" icon="#folder_table" description="Table partitions" virtual="true" visibleIf="object.dataSource.serverType.supportsPartitions()">
                                        <items label="%tree.partitions.node.name" path="partition" property="partitions" icon="#partition" virtual="true" recursive="../..">
                                        </items>
                                    </folder>
                                    <folder type="org.jkiss.dbeaver.ext.postgresql.model.PostgreTableReal" label="%tree.tablechildren.node.name" icon="#folder_table" description="Table children" virtual="true" visibleIf="object.hasSubClasses()">
                                        <items label="%tree.tablechildren.node.name" path="subTables" property="subTables" icon="#table" virtual="true" recursive="../.." >
                                        </items>
                                    </folder>
                                    <folder type="org.jkiss.dbeaver.ext.postgresql.model.PostgreTrigger" label="%tree.triggers.node.name" icon="#triggers" description="Table triggers" visibleIf="object.dataSource.serverType.supportsTriggers()">
                                        <items label="%tree.trigger.node.name" path="trigger" property="triggers" icon="#trigger"/>
                                    </folder>
                                    <folder type="org.jkiss.dbeaver.ext.postgresql.model.PostgreRule" label="%tree.rules.node.name" icon="#rules" description="Table rules" visibleIf="object.dataSource.serverType.supportsRules()">
                                        <items label="%tree.rule.node.name" path="rule" property="rules" icon="#rule"/>
                                    </folder>
                                </items>
                            </folder>
                            <folder type="org.jkiss.dbeaver.ext.postgresql.model.PostgreView" label="%tree.tviews.node.name" icon="#folder_view" description="Views">
                                <items label="%tree.tview.node.name" path="view" property="views" icon="#view">
                                    <folder type="org.jkiss.dbeaver.ext.postgresql.model.PostgreAttribute" label="%tree.columns.node.name" icon="#columns" description="View columns">
                                        <items label="%tree.column.node.name" path="attribute" property="attributes" icon="#column">
                                        </items>
                                    </folder>
                                    <folder type="org.jkiss.dbeaver.ext.postgresql.model.PostgreTrigger" label="%tree.triggers.node.name" icon="#triggers" description="View triggers" visibleIf="object.dataSource.serverType.supportsTriggers()">
                                        <items label="%tree.trigger.node.name" path="trigger" property="triggers" icon="#trigger"/>
                                    </folder>
                                    <folder type="org.jkiss.dbeaver.ext.postgresql.model.PostgreRule" label="%tree.rules.node.name" icon="#rules" description="Table rules" visibleIf="object.dataSource.serverType.supportsRules()">
                                        <items label="%tree.rule.node.name" path="rule" property="rules" icon="#rule"/>
                                    </folder>
                                </items>
                            </folder>
                            <folder type="org.jkiss.dbeaver.ext.postgresql.model.PostgreMaterializedView" label="%tree.mviews.node.name" icon="#folder_view" description="Materialized views" visibleIf="object.dataSource.serverType.supportsMaterializedViews()">
                                <items label="%tree.mview.node.name" path="view" property="materializedViews" icon="#view">
                                    <folder type="org.jkiss.dbeaver.ext.postgresql.model.PostgreAttribute" label="%tree.columns.node.name" icon="#columns" description="View columns">
                                        <items label="%tree.column.node.name" path="attribute" property="attributes" icon="#column">
                                        </items>
                                    </folder>
                                    <folder type="org.jkiss.dbeaver.ext.postgresql.model.PostgreIndex" label="%tree.indexes.node.name" icon="#indexes" description="Table indexes">
                                        <items label="%tree.index.node.name" path="index" property="indexes" icon="#index">
                                            <items label="%tree.index_columns.node.name" path="column" property="attributeReferences" icon="#column" navigable="false" inline="true">
                                            </items>
                                        </items>
                                    </folder>
                                </items>
                            </folder>
                            <folder type="org.jkiss.dbeaver.ext.postgresql.model.PostgreIndex" label="%tree.indexes.node.name" icon="#indexes" description="Indexes" visibleIf="object.dataSource.serverType.supportsIndexes()">
                                <items icon="#index" label="%tree.index.node.name" path="index" property="indexes" virtual="true">
                                    <items icon="#column" label="%tree.index_columns.node.name" itemLabel="%tree.column.node.name" path="column" property="attributeReferences" inline="true" navigable="false" virtual="true">
{'fraction_non_alphanumeric': 0.1310344827586207, 'fraction_numerical': 0.0020850040096230954, 'mean_word_length': 1.9890939597315436, 'pattern_counts': {'":': 0, '<': 213, '<?xml version=': 2, '>': 213, 'https://': 0, 'lorem ipsum': 0, 'www.': 2, 'xml': 2}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 146, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '5038944', 'n_tokens_mistral': 6256, 'n_tokens_neox': 6040, 'n_words': 958}