Sorry, didn't explain the current Phoenix behavior correctly. Phoenix
uses "." in table names currently by combining the <schema name> and
<table name> together with a "." as the separator. For example:
CREATE TABLE SCOTT.TIGER (...) would create a table named SCOTT.TIGER. I
suspect it's pretty common to use a "." in the table name, so changing
this behavior now would be painful.
James
On 05/08/2013 11:54 AM, Enis Söztutar wrote:
"." is the de-facto way of doing something like this, but now I tend to buy
the argument that forcing people to rename their tables will be a lot of
trouble.
I think it is reasonable to
- Remove "." to be a valid table name character. You won't be able to
create a table with a "." in the name.
- Keep migrated tables under default namespace. default namespace will
contain tables with dot in their name as well.
- If you have a table "a.b", you cannot create a namespace named "a"
- Whenever we refer to table "a.b", we can search for namespace "a", if
not found search for table "a.b" in default namespace.
Would that work.
Enis
On Tue, May 7, 2013 at 11:55 PM, James Taylor <[email protected]>wrote:
Phoenix uses <schema name> . <table name> to reference tables, so
allowing a "." in names would make parsing ambiguous.
James
On 05/07/2013 11:36 PM, Stack wrote:
On Tue, May 7, 2013 at 5:22 PM, Francis Liu <[email protected]> wrote:
One thing I had in mind was to automatically assume that the first dot
delimits the namespace name. During upgrade we automatically create those
namespaces and assign the tables accordingly. They can then eventually
migrate/rename their tables (if needed) at a later time. In the extreme
case that would be one namespace per table. For which we will provide a
tool to rename offline tables.
I'm guessing most cases would not require a rename. What else do people
use dots in their table name for?
With namespaces in place, will '.' be illegal in a table name?
With namespaces, is there a no-namespace/default location? If so, what
will it be called or how will you refer to tables in the
no-namespace/default namespace?
I just took a user's production website where there are hundreds of
tables.
For no good reason that I can see, they happened to have choosen '_' and
'-' as table name partitioner: i.e. application_feature, etc. My sense is
they could just as easily have gone with '.' but maybe the '.META.' name
frightens people away from '.'?
Anyone using '.' in their table names?
St.Ack