[ 
https://issues.apache.org/jira/browse/IGNITE-10874?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Alexey Kukushkin updated IGNITE-10874:
--------------------------------------
    Description: 
+*Steps to reproduce*+

1) Build and run this app: 
{code:java}
public class App {
    public static void main(String[] ags) {
        try (Ignite ignite = Ignition.start(
            new IgniteConfiguration()
                .setDiscoverySpi(
                    new TcpDiscoverySpi()
                        .setIpFinder(
                            new 
TcpDiscoveryVmIpFinder().setAddresses(Collections.singleton("127.0.0.1:47500"))
                        )
                )
        )) {
            final String NAME = "V_MODELS_SHORT";

            ignite.getOrCreateCache(
                new CacheConfiguration<>()
                    .setName(NAME)
                    .setCacheMode(CacheMode.PARTITIONED)
                    .setAtomicityMode(CacheAtomicityMode.TRANSACTIONAL)
                    .setQueryEntities(Collections.singleton(
                        new QueryEntity()
                            .setKeyType(Integer.class.getTypeName())
                            .setValueType(NAME)
                            .setKeyFieldName("VMS_ID")
                            .setFields(
                                Stream.of(
                                    new AbstractMap.SimpleEntry<>("VMS_ID", 
Integer.class.getTypeName()),
                                    new 
AbstractMap.SimpleEntry<>("VMS_HASVERSION", Boolean.class.getTypeName())
                                ).collect(Collectors.toMap(
                                    AbstractMap.SimpleEntry::getKey,
                                    AbstractMap.SimpleEntry::getValue,
                                    (u, v) -> {
                                        throw new 
IllegalStateException(String.format("Duplicate key %s", u));
                                    },
                                    LinkedHashMap::new
                                ))
                            )
                    ))
            );

            System.in.read();
        }
    }
}
{code}
2) While the app is running use a JDBC database management tool like DBeaver to 
open a JDBC thin driver connection to Ignite.

3) Check table "V_MODELS_SHORT" under schema "V_MODELS_SHORT"

+*Expected*+

3) Table "V_MODELS_SHORT" is visible under  schema "V_MODELS_SHORT"

+*Actual*+

 3) There is no table "V_MODELS_SHORT" under  schema "V_MODELS_SHORT"

+*Notes*+

You still can run queries on table V_MODELS_SHORT in DBeaver. For example, 
these queries work fine:
{code:java}
INSERT INTO V_MODELS_SHORT.V_MODELS_SHORT VALUES (1, 'false');

SELECT * FROM V_MODELS_SHORT.V_MODELS_SHORT;
{code}
 

  was:
+*Steps to reproduce*+

1) Build and run this app:

 
{code:java}
public class App {
    public static void main(String[] ags) {
        try (Ignite ignite = Ignition.start(
            new IgniteConfiguration()
                .setDiscoverySpi(
                    new TcpDiscoverySpi()
                        .setIpFinder(
                            new 
TcpDiscoveryVmIpFinder().setAddresses(Collections.singleton("127.0.0.1:47500"))
                        )
                )
        )) {
            final String NAME = "V_MODELS_SHORT";

            ignite.getOrCreateCache(
                new CacheConfiguration<>()
                    .setName(NAME)
                    .setCacheMode(CacheMode.PARTITIONED)
                    .setAtomicityMode(CacheAtomicityMode.TRANSACTIONAL)
                    .setQueryEntities(Collections.singleton(
                        new QueryEntity()
                            .setKeyType(Integer.class.getTypeName())
                            .setValueType(NAME)
                            .setKeyFieldName("VMS_ID")
                            .setFields(
                                Stream.of(
                                    new AbstractMap.SimpleEntry<>("VMS_ID", 
Integer.class.getTypeName()),
                                    new 
AbstractMap.SimpleEntry<>("VMS_HASVERSION", Boolean.class.getTypeName())
                                ).collect(Collectors.toMap(
                                    AbstractMap.SimpleEntry::getKey,
                                    AbstractMap.SimpleEntry::getValue,
                                    (u, v) -> {
                                        throw new 
IllegalStateException(String.format("Duplicate key %s", u));
                                    },
                                    LinkedHashMap::new
                                ))
                            )
                    ))
            );

            System.in.read();
        }
    }
}
{code}
2) While the app is running use a JDBC database management tool like DBeaver to 
open a JDBC thin driver connection to Ignite.

3) Check table "V_MODELS_SHORT" under schema "V_MODELS_SHORT"

+*Expected*+

3) Table "V_MODELS_SHORT" is visible under  schema "V_MODELS_SHORT"

+*Actual*+

 

3) There is no table "V_MODELS_SHORT" under  schema "V_MODELS_SHORT"

+*Notes*+

You still can run queries on table V_MODELS_SHORT in DBeaver. For example, 
these queries work fine:
{code:java}
INSERT INTO V_MODELS_SHORT.V_MODELS_SHORT VALUES (1, 'false');

SELECT * FROM V_MODELS_SHORT.V_MODELS_SHORT;
{code}
 


> JDBC thin driver metadata misses caches with queryEntities and names 
> containing underscores
> -------------------------------------------------------------------------------------------
>
>                 Key: IGNITE-10874
>                 URL: https://issues.apache.org/jira/browse/IGNITE-10874
>             Project: Ignite
>          Issue Type: Improvement
>          Components: jdbc
>    Affects Versions: 2.7
>            Reporter: Alexey Kukushkin
>            Priority: Major
>
> +*Steps to reproduce*+
> 1) Build and run this app: 
> {code:java}
> public class App {
>     public static void main(String[] ags) {
>         try (Ignite ignite = Ignition.start(
>             new IgniteConfiguration()
>                 .setDiscoverySpi(
>                     new TcpDiscoverySpi()
>                         .setIpFinder(
>                             new 
> TcpDiscoveryVmIpFinder().setAddresses(Collections.singleton("127.0.0.1:47500"))
>                         )
>                 )
>         )) {
>             final String NAME = "V_MODELS_SHORT";
>             ignite.getOrCreateCache(
>                 new CacheConfiguration<>()
>                     .setName(NAME)
>                     .setCacheMode(CacheMode.PARTITIONED)
>                     .setAtomicityMode(CacheAtomicityMode.TRANSACTIONAL)
>                     .setQueryEntities(Collections.singleton(
>                         new QueryEntity()
>                             .setKeyType(Integer.class.getTypeName())
>                             .setValueType(NAME)
>                             .setKeyFieldName("VMS_ID")
>                             .setFields(
>                                 Stream.of(
>                                     new AbstractMap.SimpleEntry<>("VMS_ID", 
> Integer.class.getTypeName()),
>                                     new 
> AbstractMap.SimpleEntry<>("VMS_HASVERSION", Boolean.class.getTypeName())
>                                 ).collect(Collectors.toMap(
>                                     AbstractMap.SimpleEntry::getKey,
>                                     AbstractMap.SimpleEntry::getValue,
>                                     (u, v) -> {
>                                         throw new 
> IllegalStateException(String.format("Duplicate key %s", u));
>                                     },
>                                     LinkedHashMap::new
>                                 ))
>                             )
>                     ))
>             );
>             System.in.read();
>         }
>     }
> }
> {code}
> 2) While the app is running use a JDBC database management tool like DBeaver 
> to open a JDBC thin driver connection to Ignite.
> 3) Check table "V_MODELS_SHORT" under schema "V_MODELS_SHORT"
> +*Expected*+
> 3) Table "V_MODELS_SHORT" is visible under  schema "V_MODELS_SHORT"
> +*Actual*+
>  3) There is no table "V_MODELS_SHORT" under  schema "V_MODELS_SHORT"
> +*Notes*+
> You still can run queries on table V_MODELS_SHORT in DBeaver. For example, 
> these queries work fine:
> {code:java}
> INSERT INTO V_MODELS_SHORT.V_MODELS_SHORT VALUES (1, 'false');
> SELECT * FROM V_MODELS_SHORT.V_MODELS_SHORT;
> {code}
>  



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to