小编Eug*_*kov的帖子

我可以更改现有Citus表上的分配方法吗?

在从MySQL迁移到Citus集群期间,我使用了range分发方法.迁移已完成,但现在我想将分配方法更改为hash.

有没有办法从改变分配方法range,以hash用于在它已经数据现有的表?

我想出了以下程序,但我不确定它是否有效:

  1. 为更改的所有分片更新表的列minvaluemaxvaluepg_dist_shard
  2. 更新的碎片存储类型列pg_dist_partition从表rh
  3. COMMIT;

postgresql citus

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

我可以为外表更改SERVER吗?

根据DOC,我不能这样做.但完全重新创建表格迫使我做大量工作而不是简单:

ALTER FOREIGN TABLE table_name ALTER SERVER new_server_name;
Run Code Online (Sandbox Code Playgroud)

postgresql postgres-fdw

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

如何从`Carton`卸载

我有Carton环境并将模块安装到./local/from cpanfile. 但现在我不需要一些模块,想删除一些。

我可以./local从头开始删除文件夹并安装模块,但这需要一些时间。我找到了这个

carton uninstall Module
Run Code Online (Sandbox Code Playgroud)

但它已经不存在了。

有类似的东西carton uninstall吗?

perl cpanm

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

如何在测试mojolicious应用程序时使用路由名称?

我已经阅读了Test :: Mojo,但在应用程序测试时没有找到如何使用路由名称:

$t->get_ok( 'list_users' )->status_is( 302 )->location_is( 'auth_login' );
Run Code Online (Sandbox Code Playgroud)

在哪里list_usersauth_login是:

$r->get( '/login' )->to( 'auth#login' )->name( 'auth_login' );
$r->get( '/users' )->to( 'user#index' )->name( 'list_users' );
Run Code Online (Sandbox Code Playgroud)

在我看来,如果*_ok计算给定的字符串,它会非常方便redirect_to.VOTEUP,如果这也适合您的功能请求.

作为解决这个问题的方法,我尝试使用url_for但没有成功:

$t->url_for( 'list_users' );
#Can't locate object method "url_for" via package "Test::Mojo"
Run Code Online (Sandbox Code Playgroud)

如何从测试脚本中获取其名称的路径路径?

perl mojolicious

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

如何在 Mojolicious 中找到给定路径的路径名称?

当我解析 html 响应正文时,我想为正文中找到的所有链接找到路由名称。我使用下一个代码片段:

    my $url =  Mojo::URL->new( $got );
    my $method =  uc( $url->query->clone->param( '_method' ) || 'GET' );
    my $c =  $t->app->build_controller;
    my $m =  Mojolicious::Routes::Match->new( root => $t->app->routes );

    $m->find( $c => { method => $method,  path => $url->path } );
Run Code Online (Sandbox Code Playgroud)

然后$m->endpoint->name给我路线名称。

但是有没有更简单的方法可以通过给定的路径查找路线名称?

我正在寻找类似的东西:$app->routes->find( '/api/v/users/146/link/7QRgs' )它应该返回,user_hash_check因为我有下一条路线:

$guest->get( '/users/:id/link/:hash', 'user_hash_check' )->to( 'user#hash_check' );
Run Code Online (Sandbox Code Playgroud)

perl mojolicious

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

如何逐块应用补丁块?

有没有一种方法可以像从工作目录中将大块添加到阶段中那样,逐个从大块中应用补丁git add -p

我正在寻找类似的命令:

git stash show -p | git apply --hunk-by-hunk
Run Code Online (Sandbox Code Playgroud)

git patch

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

标志'pIOK`是什么意思?

Devel::Peek我倾倒perl SV时,我可以看到:

SV = IV(0x1c13168) at 0x1c13178
  REFCNT = 1
  FLAGS = (IOK,pIOK)
  IV = 2
Run Code Online (Sandbox Code Playgroud)

但找不到描述是什么pIOK意思.

我想看看它在Devel::Peek,perlapi,perlguts,perlxs...在来源,我发现:

{SVp_IOK, "pIOK,"}
Run Code Online (Sandbox Code Playgroud)

但还是找不到什么SVp_IOK.它是什么?

UPD
我找到了这个文件.它揭示了旗帜的含义以及它们所处的位置.(要小心这个DOC已经过时了)

在此输入图像描述

此标志指示对象具有有效的非公共IVX字段值.它只能为值类型SvIV或其子类型设置.

UPD

为什么私人和公共旗帜不同

perl xs perlapi

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

如何丢弃所有Mojolicious路线?

完整的Mojolicious应用程序具有routes将转储应用程序路由的命令:

script/my_app.pl routes
Run Code Online (Sandbox Code Playgroud)

Lite应用程序的测试脚本中如何做同样的事情?

use Mojo::Base -strict;
use Test::Mojo;
use Test::More;

use Mojolicious::Lite;

... # Routes defined here

my $t = Test::Mojo->new;

$t->dump_all_routes # What should I do here?
Run Code Online (Sandbox Code Playgroud)

perl mojolicious-lite

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

如何从Bash历史文件中删除重复的命令?

我配置了自己的 .bash_myhistory

export HISTFILESIZE=
export HISTSIZE=
export HISTTIMEFORMAT="[%F %T] "

export HISTFILE=~/.bash_myhistory
PROMPT_COMMAND="history -a; history -r; $PROMPT_COMMAND"
Run Code Online (Sandbox Code Playgroud)

当我运行history它时显示了许多重复输出:

 $ history | grep 'git rebase'
   75  [2018-05-23 16:39:39] git rebase -p dev_hypermouse 
  168  [2018-05-23 19:27:39] man git rebase 
  547  [2018-05-25 19:01:44] git rebase master 
  639  [2018-05-25 20:24:52] git rebase master 
  869  [2018-05-28 14:07:33] git rebase xxx
  921  [2018-05-28 16:12:20] git rebase dash_v2 
  922  [2018-05-28 16:12:33] man git rebase
  925  [2018-05-28 16:13:21] man git rebase
  927  [2018-05-28 16:15:42] git rebase …
Run Code Online (Sandbox Code Playgroud)

bash

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

如何获取聚合函数选择的行的id?

我有下一个数据:

id | name | amount | datefrom
---------------------------
3  | a    |  8     | 2018-01-01
4  | a    |  3     | 2018-01-15 10:00
5  | b    |  1     | 2018-02-20
Run Code Online (Sandbox Code Playgroud)

我可以使用下一个查询对结果进行分组:

select name, max(amount) from table group by name
Run Code Online (Sandbox Code Playgroud)

但我也需要id选定的行。因此我尝试过:

select max(id), name, max(amount) from table group by name
Run Code Online (Sandbox Code Playgroud)

正如预期的那样,它返回:

id | name | amount
-----------
4  | a    |  8
5  | b    |  1
Run Code Online (Sandbox Code Playgroud)

但我需要 id3的数量8

id | name | amount …
Run Code Online (Sandbox Code Playgroud)

postgresql aggregate-functions

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