kdb/q 中的meta
函数返回有关表的以下信息:
- c –(符号)列名
- t – (char) 数据类型
- f –(符号)外键域
- a - (符号)属性。
我想扩展它以包含有关该表的更多信息。我试图解决的具体情况是在表中包含有关时间数据列的时区信息。
例如:
select from Price
+-------------------------+-------------------------+--------+-------+
| Time | SysTime | Ticker | Price |
+-------------------------+-------------------------+--------+-------+
| 2016.09.15D09:18:02.391 | 2016.09.15D08:18:02.391 | IBM | 63.46 |
| 2016.09.15D09:18:02.491 | 2016.09.15D08:16:22.391 | MSFT | 96.72 |
| 2016.09.15D09:18:02.591 | 2016.09.15D08:14:42.391 | AAPL | 23.06 |
+-------------------------+-------------------------+--------+-------+
meta Price
+---------+---+---+---+
| c | t | f | a |
+---------+---+---+---+
| Time | p | | |
| SysTime | p | | |
| Ticker | s | | |
| Price | f | | |
+---------+---+---+---+
我想了解有关元数据中时间数据列(Time
和SysTime
)的更多信息。
例如,像这样:
metaExtended Price
+---------+---+---+---+------------------+
| c | t | f | a | z |
+---------+---+---+---+------------------+
| Time | p | | | America/New_York |
| SysTime | p | | | America/Chicago |
| Ticker | s | | | |
| Price | f | | | |
+---------+---+---+---+------------------+
请注意,我有一个函数可以在表和列中返回时区。
TimeZone[Price;Time]
返回America/New_York
我的问题只是关于如何在元函数中包含这些信息。我遇到的第二个问题是,如果用户做了这样的事情newPriceTable:Price
(创建一个与前一个表相同的新表),那么该metaExtended
函数应该为两个表返回相同的值(类似于在两个表上调用一个函数)具有相同对象引用的不同变量)
sql中是否存在类似的东西?