标签: dialect

C++“功能测试宏”的值是什么意思?

为了测试某个功能, cppreference 提到了这些功能测试宏: link

如果编译器中存在该功能,则定义宏。但我不明白为什么,如果定义了,它们会被定义为类似的东西201606,我相信这是C++ 的版本,而不是编译器的版本

例如,我正在使用 GCC 的最新版本来实现-std=c++17该功能__cpp_lib_hardware_interference_size。该宏未定义,我认为这意味着 GCC 没有该功能,尽管尝试使用 c++17(和 c++2a)开关 8.2.1。在这种情况下,记录值的意义是什么:

__cpp_lib_hardware_interference_size 201703

(在 cppreference 链接内)?

c++ gcc compiler-flags dialect

7
推荐指数
1
解决办法
2192
查看次数

我应该将REBOL函数称为列表推导?

REBOL没有内置的方法来执行列表推导.但是,REBOL具有强大的功能(称为parse),可用于创建特定于域的语言(DSL).我曾经习惯parse为列表推导创建这样的迷你DSL.为了解释表达式,包含理解的块被传递给一个函数,由于缺少一个我称之为更好的术语comprehend.

例:

comprehend [(a * b) for a in 1x100 for b in 4x10 where (all [odd? a odd? b])]
Run Code Online (Sandbox Code Playgroud)

出于某种原因,comprehend对我来说听起来不对,但是类似的东西eval太笼统了.

我还没有找到任何其他需要关键字或函数用于列表推导的语言.无论它们存在,它们都是纯粹的语法糖.不幸的是我没有这个选择.所以,看到我必须有一个功能,它的优点,简洁,合乎逻辑的名称是什么?

naming list-comprehension rebol dialect

6
推荐指数
1
解决办法
438
查看次数

Hibernate 3.6:SQL方言中的registerFunction不起作用

我放弃并问社区......

在我的项目中,我使用的是Hibernate 3.6.4.Final和自定义sql方言:

public class ServiceAppMySQL5InnoDBDialect extends MySQL5InnoDBDialect {

    public ServiceAppMySQL5InnoDBDialect() {
        super();
        registerFunction("bitwise_and", new SQLFunctionTemplate(StandardBasicTypes.INTEGER, "(?1 & ?2)"));
        registerFunction("hasflags", new SQLFunctionTemplate(StandardBasicTypes.BOOLEAN, "?1 & ?2 = ?2"));
    }

}
Run Code Online (Sandbox Code Playgroud)

hasflags在HQL查询中使用该方法失败.这是查询:

Query q = em
        .createQuery(
            "SELECT o FROM "
            + entityClass.getName()
            + " o WHERE hasflags(o.status, :status) AND o.email = :email")
        .setParameter("email", username)
        .setParameter("status", status.getBitmask());
Run Code Online (Sandbox Code Playgroud)

错误:

Caused by: org.hibernate.hql.ast.QuerySyntaxException: unexpected AST node: ( near line 1, column 50 [SELECT o FROM tv.px.domain.Owner o WHERE hasflags(o.status, :status) AND o.email = …
Run Code Online (Sandbox Code Playgroud)

hibernate hql dialect

6
推荐指数
1
解决办法
5968
查看次数

哪个c方言可以让GCC编译一些乐趣(...)?

编译一些具有函数原型的遗留代码Ac

void somefun(...)
Run Code Online (Sandbox Code Playgroud)

gcc 4.1.2总是说出错误

 error: ISO C requires a named argument before ...
Run Code Online (Sandbox Code Playgroud)

但我无法修改代码,所以我应该使用什么C dialet选项让GCC编译这段代码?

gcc -c A.c ????
Run Code Online (Sandbox Code Playgroud)

c gcc dialect

6
推荐指数
1
解决办法
1086
查看次数

德比方言为冬眠

根据这个链接,对于4.2 hibernate的德比方言没有提到支持.

Hibernate不支持Apache Derby吗?

apache hibernate dialect

6
推荐指数
1
解决办法
7671
查看次数

是否有可能为Apache Phoenix编写一个hibernate方言?

我想为Apache Phoenix编写一个hibernate方言.最大的问题是insert语句的关键字是"Upsert"而不是"Insert".此关键字在org.hibernate.sql.Insert中声明.是否有可能为Apache Phoenix编写方言?

来源http://phoenix.apache.org/language/index.html#upsert_values

亲切的问候

apache hibernate phoenix dialect

6
推荐指数
1
解决办法
1249
查看次数

如何在sqlalchemy中编写自己的方言来适应HTTP API?

我正在尝试向 Superset(数据探索平台)添加一个特殊的数据源。该数据库仅支持HTTP API,返回json格式的数据;例如:

> http://localhost/api/sql/query?q="select * from table"
< [{"id": 1, "value":10}, {"id": 2, "value": 30} ...]
Run Code Online (Sandbox Code Playgroud)

因此,我必须在 python SQLAlchemy 中为 Superset 编写自己的适配器。我已经阅读了文档和部分源代码,但仍然需要好的示例来遵循。

python sqlalchemy dialect apache-superset

6
推荐指数
1
解决办法
2444
查看次数

优化休眠序列ID生成

尝试将Hibernate与SAP HANA内存数据库连接时遇到一些性能问题,该数据库不支持AUTO_INCREMENT(http://scn.sap.com/thread/3238906)。

因此,我将Hibernate设置为使用序列进行ID生成。

  @GeneratedValue(strategy=GenerationType.SEQUENCE, generator="myseq") 
  @SequenceGenerator(name="myseq",sequenceName="MY_SEQ",allocationSize=1)
Run Code Online (Sandbox Code Playgroud)

但是当我插入大量记录(例如40000)时,Hibernate首先生成ID。看起来像:

DEBUG Thread-1 org.hibernate.SQL - select MY_SEQ.nextval from DUMMY
DEBUG Thread-1 org.hibernate.id.SequenceGenerator - Sequence identifier generated: BasicHolder[java.lang.Long[92080]]
DEBUG Thread-1 org.hibernate.event.internal.AbstractSaveEventListener - Generated identifier: 92080, using strategy: org.hibernate.id.SequenceHiLoGenerator
DEBUG Thread-1 org.hibernate.SQL - select MY_SEQ.nextval from DUMMY
DEBUG Thread-1 org.hibernate.id.SequenceGenerator - Sequence identifier generated: BasicHolder[java.lang.Long[92081]]
DEBUG Thread-1 org.hibernate.event.internal.AbstractSaveEventListener - Generated identifier: 92081, using strategy: org.hibernate.id.SequenceHiLoGenerator
Run Code Online (Sandbox Code Playgroud)

并且只有在生成所有ID之后,它才开始实际插入。

总共大约需要5分钟才能插入40000条记录(通过网络到远程数据库),这对于内存数据库来说非常慢。我认为发生这种情况是因为Hibernate逐一选择了ID的下一个值:

send a request to database
get id
send next request
...
Run Code Online (Sandbox Code Playgroud)

我想加快ID生成的速度,但是不幸的是,我对ID如何改进它还不够了解。我搜索了可能的解决方案,并发现以下想法:

1)在insert语句中调用sequence.nextval。但是,Hibernate团队说这是不可能的:https : …

sql hibernate sequence auto-increment dialect

5
推荐指数
1
解决办法
6597
查看次数

使用registerColumntype for hibernate在MySQL中使用mediumtext

我在尝试使用 hibernate 将内容插入到 MySQL 时遇到以下错误,该错误是由于其中一列是 Mysql 中的“mediumtext”数据类型,但在我的实体类中我将该字段声明为 String。

Initial sessionFactory creation failed.org.hibernate.HibernateException: Wrong column type in db_test.articles for column content. Found: mediumtext, expected: varchar(255)
Exception in thread "main" java.lang.ExceptionInInitializerError
Run Code Online (Sandbox Code Playgroud)

我在谷歌搜索上找到了一些帖子,并将以下类复制到我的“src/main/java/persistence 目录中:

public class MySQLDialect extends org.hibernate.dialect.MySQLDialect
{
    public MySQLDialect()
    {
        super();
        System.out.println("MyMySQLDialect created new instance!");
    }

    protected void registerVarcharTypes() {
        System.out.println("MyMySQLDialect: registering VarCharTypes");
        registerColumnType(Types.VARCHAR, 16777215, "mediumtext");
        registerColumnType(Types.VARCHAR, 65535, "text");
        registerColumnType(Types.VARCHAR, 255, "varchar($1)");
        registerColumnType(Types.LONGNVARCHAR, "longtext");
    }
}
Run Code Online (Sandbox Code Playgroud)

但我不知道如何让Hibernate知道这个自定义数据类型。谢谢

mysql string varchar hibernate dialect

5
推荐指数
1
解决办法
6844
查看次数

关于 PostgreSQL 的 Dapper SQL 查询和参数的问题

我目前正在学习 Dapper。我在这里和其他地方(包括这个)搜索了很多,但找不到我的疑问的具体答案:

¿ Dapper 是使用通用 SQL 方言还是特定于数据库引擎?我的意思是,它使用底层数据库引擎中预期的 SQL 语法?起初,在阅读了十几个例子之后,我认为 SQL 查询是通用的,但现在尝试使用 PostgresSQL ODBC 我遇到了语法和参数的问题。

使用这个示例 POCO 类...

public class CardType {

    //Autoincremented Key
    public int Id { get; set; }

    public string Type { get; set; }

    public string Description { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

...以下行对我不起作用:

_connection.Execute(@"INSERT cardtypes (type, description) VALUES (@Type,  @Description)", cardType);
Run Code Online (Sandbox Code Playgroud)

首先,这一行引发了 ODBC 异常,因为在指定表之前需要“INTO”子句。参数也不起作用,因为如果我没记错的话,PostgresSQL 参数是用“?”设置的。符号而不是“@keyword”。在 GitHub页面上,我们可以找到:

Dapper 没有特定于数据库的实现细节,它适用于所有 .NET ADO 提供程序,包括 SQLite、SQL CE、Firebird、Oracle、MySQL、PostgreSQL 和 SQL Server。

所以我迷失了。:) 经过大量实验后,我发现将所有 PostgresSQL 内容都按预期工作。例如,接下来的所有案例都有效:

//Manually parameters

var …
Run Code Online (Sandbox Code Playgroud)

c# sql postgresql dialect dapper

5
推荐指数
1
解决办法
3774
查看次数