1

カサンドラに次のテーブルがあります。

CREATE TABLE reports (
  c_date text,
  c_n int,
  c_id timeuuid,
  report_id bigint,
  report text,
  PRIMARY KEY ((c_date, c_n), c_id)
)

c_dateレポートを日付別にクエリするためのものです。

c_nホットスポットを防止するノードの数 (データを均等に分散するノードの数) です。

c_id挿入された timeuuid です。

私の選択クエリ(cql 3)は次のとおりです。

select report, dateOf(c_id), report_id 
from keyspace.reports 
where c_date = '2013-08-02' and 
      c_n = 1 and 
      c_id > minTimeuuid('2013-08-02 02:52:10-0400');

結果セットを正常に取得しました。ただし、別の例( here)でcql_get_rows()実装された関数を使用すると、

タイムスタンプ (dateOf(id)) を正しく解析できず、bigint フィールドは次の警告を生成します。

PHP Warning:  unpack(): Type N: not enough input, need 4, have 0 
in /home/arascan/my-project/tools/vendor/phpcassa/lib/phpcassa/Schema/DataType/LongType.php on line 47

から返されるデータcql_get_rows()は次のとおりです。

  [0] => Array
        (
            [reportid] => 281474976712782
            [report]   => some_report
            [dateOf(c_id)] => d:1375426331.32100009918212890625;
        )

この関数が警告をスローするのを防ぎ、タイムスタンプを日付形式で取得するにはどうすればよいですか? (@ の使用法を提案しないでください)

4

0 に答える 0