小编Fra*_*iak的帖子

PostgreSQL - 确定列存储类型

我已经阅读了很多关于 PostgreSQL 的TOAST,但我似乎缺少一件事。他们在文档中提到,“在磁盘上存储可 TOAST 的列有四种不同的策略”,它们是:PLAIN、EXTENDED、EXTERNAL 和 MAIN。他们还有一个非常明确的方法来定义您的专栏使用哪种策略,可以在这里找到。本质上,它会是这样的:

ALTER TABLE table_name ALTER COLUMN column_name SET STORAGE EXTERNAL
Run Code Online (Sandbox Code Playgroud)

我没有看到的一件事是如何轻松检索该设置。我的问题是,是否有一种简单的方法(通过命令或 pgAdmin)来检索列使用的存储策略?

postgresql

6
推荐指数
2
解决办法
1257
查看次数

使用 Go Mongo-Driver 和 mtest 从 UpdateOne 模拟 UpdateResult

我正在尝试使用该mtest包(https://pkg.go.dev/go.mongodb.org/mongo-driver/mongo/integration/mtest)对我的 MongoDB 调用执行一些模拟结果测试,但我可以似乎不知道如何正确模拟调用集合*mongo.UpdateResult时返回的值。UpdateOne(...)

这是演示该问题的片段:

package test

import (
    "context"
    "errors"
    "testing"

    "github.com/stretchr/testify/assert"
    "go.mongodb.org/mongo-driver/bson"
    "go.mongodb.org/mongo-driver/mongo"
    "go.mongodb.org/mongo-driver/mongo/integration/mtest"
)

func UpdateOneCall(mongoClient *mongo.Client) error {
    filter := bson.D{{Key: "SomeIDField", Value: "SomeID"}}
    update := bson.D{{Key: "$set", Value: bson.D{{Key: "ANewField", Value: true}}}}
    collection := mongoClient.Database("SomeDatabase").Collection("SomeCollection")
    updateResult, err := collection.UpdateOne(context.Background(), filter, update)
    if err != nil {
        return err
    }
    if updateResult.ModifiedCount != 1 {
        return errors.New("no field was updated")
    }
    return nil
}

func TestUpdateOneCall(t *testing.T) {
    mt := …
Run Code Online (Sandbox Code Playgroud)

mocking go mongodb mongo-go mongo-go-driver

4
推荐指数
1
解决办法
1455
查看次数

Java中的基本类型decimal - 用户入口

我正在做一个练习,其中用户必须使用 Java 编程语言输入带符号的四位十进制数,例如+3364-1293+0007等。

据我所知,Java不支持基本类型decimal。
我的问题是:

  1. 我怎样才能输入上面这样的数字?
  2. 如何为上述数字提供 +、- 号?

更新

下面的代码显示了一个片段,其中要求用户输入有效的数字(无字符) - 使用下面的代码,一元 + 不起作用!有办法解决吗?

public int readInt() {
    boolean continueLoop = true;
    int number = 0;
    do {
        try {
            number = input.nextInt();
            continueLoop = false;
        } // end try
        catch (InputMismatchException inputMismatchException) {
            input.nextLine();
            /** discard input so user can try again */
            System.out.printf("Invalid Entry ?: ");
        } // end of catch
    } while (continueLoop); // end of do...while loop

    return number; …
Run Code Online (Sandbox Code Playgroud)

java

2
推荐指数
1
解决办法
1万
查看次数

标签 统计

go ×1

java ×1

mocking ×1

mongo-go ×1

mongo-go-driver ×1

mongodb ×1

postgresql ×1