GVKun编程网logo

由于 mysqldb 区分大小写,Presto show tables 显示一个不存在的表

30

在本文中,我们将带你了解由于mysqldb区分大小写,Prestoshowtables显示一个不存在的表在这篇文章中,同时我们还将给您一些技巧,以帮助您实现更有效的com.facebook.prest

在本文中,我们将带你了解由于 mysqldb 区分大小写,Presto show tables 显示一个不存在的表在这篇文章中,同时我们还将给您一些技巧,以帮助您实现更有效的com.facebook.presto.sql.tree.ShowTables的实例源码、How to fix Mysql table crashes、java – 如何在Oracle 10gR2和JPA中做一个不区分大小写和不区分大小写的操作?、k8s kubernetes mysql 8.0 设置表不区分大小写 lower_case_table_names=1

本文目录一览:

由于 mysqldb 区分大小写,Presto show tables 显示一个不存在的表

由于 mysqldb 区分大小写,Presto show tables 显示一个不存在的表

为了处理 MySQL 中的非小写表名,您目前需要设置 case-insensitive-name-matching=true 目录属性。

将在 https://github.com/trinodb/trino/issues/17 中提供对混合大小写表名和列名的更适当的支持。

com.facebook.presto.sql.tree.ShowTables的实例源码

com.facebook.presto.sql.tree.ShowTables的实例源码

项目:presto-query-formatter    文件:StatementFormatter.java   
@Override
protected Void visitShowTables(ShowTables node,Integer context)
{
    builder.append("SHOW TABLES");

    node.getSchema().ifPresent((value) ->
            builder.append(" FROM ")
                    .append(value));

    node.getLikePattern().ifPresent((value) ->
            builder.append(" LIKE ")
                    .append(formatStringLiteral(value)));

    return null;
}
项目:presto    文件:sqlFormatter.java   
@Override
protected Void visitShowTables(ShowTables node,Integer context)
{
    builder.append("SHOW TABLES");

    node.getSchema().ifPresent((value) ->
            builder.append(" FROM ")
                    .append(value));

    node.getLikePattern().ifPresent((value) ->
            builder.append(" LIKE ")
                    .append(formatStringLiteral(value)));

    return null;
}
项目:presto    文件:AstBuilder.java   
@Override
public Node visitShowTables(sqlbaseParser.ShowTablesContext context)
{
    return new ShowTables(
            getLocation(context),Optional.ofNullable(context.qualifiedname())
                    .map(AstBuilder::getQualifiedname),getTextIfPresent(context.pattern)
                    .map(AstBuilder::unquote));
}
项目:presto    文件:TestsqlParser.java   
@Test
public void testShowTables()
        throws Exception
{
    assertStatement("SHOW TABLES",new ShowTables(Optional.empty(),Optional.empty()));
    assertStatement("SHOW TABLES FROM a",new ShowTables(Optional.of(Qualifiedname.of("a")),Optional.empty()));
    assertStatement("SHOW TABLES IN a LIKE '%'",Optional.of("%")));
}
项目:EchoQuery    文件:sqlFormatter.java   
@Override
protected Void visitShowTables(ShowTables node,Integer context)
{
    builder.append("SHOW TABLES");

    node.getSchema().ifPresent((value) ->
            builder.append(" FROM ")
                    .append(value));

    node.getLikePattern().ifPresent((value) ->
            builder.append(" LIKE ")
                    .append(formatStringLiteral(value)));

    return null;
}
项目:presto    文件:StatementAnalyzer.java   
@Override
protected RelationType visitShowTables(ShowTables showTables,AnalysisContext context)
{
    String catalogName = session.getCatalog().orElse(null);
    String schemaName = session.getSchema().orElse(null);

    Optional<Qualifiedname> schema = showTables.getSchema();
    if (schema.isPresent()) {
        List<String> parts = schema.get().getParts();
        if (parts.size() > 2) {
            throw new SemanticException(INVALID_SCHEMA_NAME,showTables,"Too many parts in schema name: %s",schema);
        }
        if (parts.size() == 2) {
            catalogName = parts.get(0);
        }
        schemaName = schema.get().getSuffix();
    }

    if (catalogName == null) {
        throw new SemanticException(CATALOG_NOT_SPECIFIED,"Catalog must be specified when session catalog is not set");
    }
    if (schemaName == null) {
        throw new SemanticException(SCHEMA_NOT_SPECIFIED,"Schema must be specified when session schema is not set");
    }

    if (!Metadata.listSchemaNames(session,catalogName).contains(schemaName)) {
        throw new SemanticException(MISSING_SCHEMA,"Schema '%s' does not exist",schemaName);
    }

    Expression predicate = equal(nameReference("table_schema"),new StringLiteral(schemaName));

    Optional<String> likePattern = showTables.getLikePattern();
    if (likePattern.isPresent()) {
        Expression likePredicate = new LikePredicate(nameReference("table_name"),new StringLiteral(likePattern.get()),null);
        predicate = logicalAnd(predicate,likePredicate);
    }

    Query query = simpleQuery(
            selectList(aliasedname("table_name","Table")),from(catalogName,TABLE_TABLES),predicate,ordering(ascending("table_name")));

    return process(query,context);
}

How to fix Mysql table crashes

How to fix Mysql table crashes

Whenever you enconter this:

  
  
  
  1. Please use mysql_upgrade to fix this error.

or using   mysql_upgrade -u root -p  says:
   
   
   
  1. Looking for ''mysql'' as: mysql
  2. Looking for ''mysqlcheck'' as: mysqlcheck
  3. Error: Failed while fetching Server version! Could be due to unauthorized access.
  4. FATAL ERROR: Upgrade failed

you can try this:
   
   
   
  1. chown -R mysql /var/lib/mysql
  2. mysql_upgrade -u root -p



来自为知笔记(Wiz)


java – 如何在Oracle 10gR2和JPA中做一个不区分大小写和不区分大小写的操作?

java – 如何在Oracle 10gR2和JPA中做一个不区分大小写和不区分大小写的操作?

在J2EE项目中,使用JPA,如何强制类似查询不区分大小写,并且不区分大小写?

我知道更改会话变量NLS_COMP和NLS_SORT,但我想知道在查询本身是否有另一个窍门,而不改变会话变量

解决方法

原来,你可以做一些类似的事情
select  upper(convert('This is a têst','US7ASCII')),upper(convert('THIS is A test','US7ASCII'))
from dual;

select  1 from dual 
where upper(convert('This is a têst','US7ASCII')) =
             upper(convert('THIS is A test','US7ASCII'))

CONVERT将重音字符减少到映射的ASCII等价物,而UPPER将小写字母强制为大写.所得到的字符串应该是匹配的.

k8s kubernetes mysql 8.0 设置表不区分大小写 lower_case_table_names=1

k8s kubernetes mysql 8.0 设置表不区分大小写 lower_case_table_names=1

apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  annotations:
    deployment.kubernetes.io/revision: "1"
  creationTimestamp: "2019-05-02T16:03:33Z"
  generation: 1
  labels:
    run: k8s-mysql
  name: k8s-mysql
  namespace: default
  resourceVersion: "9665"
  selfLink: /apis/extensions/v1beta1/namespaces/default/deployments/k8s-mysql
  uid: d600e4f1-6cf3-11e9-940a-1eebfc19a3f6
spec:
  progressDeadlineSeconds: 600
  replicas: 1
  revisionHistoryLimit: 10
  selector:
    matchLabels:
      run: k8s-mysql
  strategy:
    rollingUpdate:
      maxSurge: 25%
      maxUnavailable: 25%
    type: RollingUpdate
  template:
    metadata:
      creationTimestamp: null
      labels:
        run: k8s-mysql
    spec:
      containers:
      - name: k8s-mysql
        image: mysql
        imagePullPolicy: Always
        env:
          - name: MYSQL_ROOT_PASSWORD
            value: "123456"
        ports:
        - containerPort: 3306
          protocol: TCP
        resources: {}
        terminationMessagePath: /dev/termination-log
        terminationMessagePolicy: File
        args:
        - --lower_case_table_names=1
        - --skip-ssl
        - --character_set_server=utf8
        - --explicit_defaults_for_timestamp
      dnsPolicy: ClusterFirst
      restartPolicy: Always
      schedulerName: default-scheduler
      securityContext: {}
      terminationGracePeriodSeconds: 30
status:
  availableReplicas: 1
  conditions:
  - lastTransitionTime: "2019-05-02T16:05:27Z"
    lastUpdateTime: "2019-05-02T16:05:27Z"
    message: Deployment has minimum availability.
    reason: MinimumReplicasAvailable
    status: "True"
    type: Available
  - lastTransitionTime: "2019-05-02T16:03:33Z"
    lastUpdateTime: "2019-05-02T16:05:27Z"
    message: ReplicaSet "k8s-mysql-764ff9c9ff" has successfully progressed.
    reason: NewReplicaSetAvailable
    status: "True"
    type: Progressing
  observedGeneration: 1
  readyReplicas: 1
  replicas: 1
  updatedReplicas: 1

最主要的是:

args:
   - --lower_case_table_names=1

关于由于 mysqldb 区分大小写,Presto show tables 显示一个不存在的表的问题就给大家分享到这里,感谢你花时间阅读本站内容,更多关于com.facebook.presto.sql.tree.ShowTables的实例源码、How to fix Mysql table crashes、java – 如何在Oracle 10gR2和JPA中做一个不区分大小写和不区分大小写的操作?、k8s kubernetes mysql 8.0 设置表不区分大小写 lower_case_table_names=1等相关知识的信息别忘了在本站进行查找喔。

本文标签: