+----------------------------------------------------------------+----------------------+
| CHANGE_STREAM | OPTIONS |
+----------------------------------------------------------------+----------------------+
| Empty | |
| EverythingStream FOR ALL | |
| NamesAndAlbums FOR Singers(FirstName, LastName), Albums, Songs | retention_period=36h |
| SingerAlbumStream FOR Singers, Albums | |
+----------------------------------------------------------------+----------------------+
SELECT CHANGE_STREAM_NAME || IF(`ALL`, " FOR ALL", IFNULL(" FOR " || (
SELECT STRING_AGG(TABLE_NAME || IF(ALL_COLUMNS, "", FORMAT("(%s)", (
SELECT STRING_AGG(COLUMN_NAME, ", ")
FROM INFORMATION_SCHEMA.CHANGE_STREAM_COLUMNS CSC
WHERE (CST.CHANGE_STREAM_NAME, CST.TABLE_NAME) = (CSC.CHANGE_STREAM_NAME, CSC.TABLE_NAME)
))), ", ")
FROM INFORMATION_SCHEMA.CHANGE_STREAM_TABLES CST
WHERE CS.CHANGE_STREAM_NAME = CST.CHANGE_STREAM_NAME
), "")) AS CHANGE_STREAM,
IFNULL((
SELECT STRING_AGG(FORMAT("%s=%s", OPTION_NAME, OPTION_VALUE), ", ")
FROM INFORMATION_SCHEMA.CHANGE_STREAM_OPTIONS CSO
WHERE CS.CHANGE_STREAM_NAME = CSO.CHANGE_STREAM_NAME
), "") AS OPTIONS
FROM INFORMATION_SCHEMA.CHANGE_STREAMS CS
refs #135 (comment)
FOR ALLor empty streams alsoProposed layout
Semantics
References
INFORMATION_SCHEMA.CHANGE_STREAMSINFORMATION_SCHEMA.CHANGE_STREAM_TABLESINFORMATION_SCHEMA.CHANGE_STREAM_COLUMNSINFORMATION_SCHEMA.CHANGE_STREAM_OPTIONS