Hi, Nikita,

On Sep 03, Nikita Malyavin wrote:
> One more stack of questions:
> 
> > > +show columns from t1;
> > > +Field        Type    Null    Key     Default Extra
> > > +id   int(11) NO      PRI     NULL
> > > +s    timestamp(6)    NO              NULL
> > > +e    timestamp(6)    NO              NULL
> > > +select * from information_schema.periods where table_schema = 'test';
> > > +TABLE_CATALOG        TABLE_SCHEMA    TABLE_NAME      PERIOD 
> > > START_COLUMN_NAME       END_COLUMN_NAME
> > > +def  test    t2      SYSTEM_TIME     row_start       row_end
> >
> > I don't think so, they're INVISIBLE_SYSTEM. for all practical purposes they
> > don't exist as columns in the table. Shouldn't be shown either.
> > But don't remove this test, let's keep it to show that row_start/row_end
> > are
> > *not* shown here.
> > And add table t3 with full standard definition of period for system_time.
> > it should be shown all right.
> 
> The columns -- I've checked -- can be accessed in SELECT, so why not
> show it?

They can be accessed by SELECT, but they aren't _columns_.
No other I_S table show them, SHOW CREATE doesn't show them.
They're pseudo-columns, like, for example, ROWID in Oracle.

> What should be the value then? An empty string? Or make it NULLable?
> The period itself is also accessible in SELECT, so I suppose it should
> be shown.

No. If SHOW CREATE TABLE doesn't show something - this something doesn't
exist as an object in the table, so information_schema.periods should
not show it either.

Regards,
Sergei
VP of MariaDB Server Engineering
and secur...@mariadb.org
_______________________________________________
developers mailing list -- developers@lists.mariadb.org
To unsubscribe send an email to developers-le...@lists.mariadb.org

Reply via email to