Thread: [pgadmin4] Creating a new Node in ACI Tree

[pgadmin4] Creating a new Node in ACI Tree

From
Joao De Almeida Pereira
Date:
Hello Hackers,
Need some pointers while creating new node on ACI Tree. 
In GreenPlum there is a concept of External Tables that are more or less similar to Foreign Wrappers, but different. So we started implementing a new node for it.

We copied the Foreign Wrappers node and started it playing with it. The current status:
We can see the External Tables node, when we open it we see the External Tables.
The problem that we are facing now is when we select a table and then press the tabs 'SQL' or Properties nothing happens. What do we need to do in order for this to work?

Maybe the choice of foreign Wrappers was not the best to start off, but we would appreciate some help to make this work.


Attached you can find the code that I currently have.

Thanks
Joao
Attachment

Re: [pgadmin4] Creating a new Node in ACI Tree

From
Murtuza Zabuawala
Date:
Hi Joao,

Just like 'nodes' & 'children' operation, You have to implement several other methods,

'obj' - To create, update, delete & properties for External Tables
Ref: ../foreign_tables/__init__.py: 193
Which will call associated methods, def create(..), def update(...), def delete(...) & def properties(...)

'sql' - Displays reversed engineered sql on SQL panel
Which will call to method def sql(...) method

'msql'Displays reversed engineered sql on Create/Properties dialog
Which will call to method def msql(...) method

'stats' -Displays object statistics sql on Statistics panel
Which will call to method def statistics(...) method

'dependency' - Displays object dependencies on Dependencies panel
Which will call to method def dependencies(...) method

'dependent' - Displays object dependents on SQL panel
Which will call to method def dependents(...) method

Hope that helps.

--
Regards,
Murtuza Zabuawala
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company


On Fri, Feb 23, 2018 at 9:08 PM, Joao De Almeida Pereira <jdealmeidapereira@pivotal.io> wrote:
Hello Hackers,
Need some pointers while creating new node on ACI Tree. 
In GreenPlum there is a concept of External Tables that are more or less similar to Foreign Wrappers, but different. So we started implementing a new node for it.

We copied the Foreign Wrappers node and started it playing with it. The current status:
We can see the External Tables node, when we open it we see the External Tables.
The problem that we are facing now is when we select a table and then press the tabs 'SQL' or Properties nothing happens. What do we need to do in order for this to work?

Maybe the choice of foreign Wrappers was not the best to start off, but we would appreciate some help to make this work.


Attached you can find the code that I currently have.

Thanks
Joao

Re: [pgadmin4] Creating a new Node in ACI Tree

From
Joao De Almeida Pereira
Date:
Hello Murtuza,
Do we have to have that present in python in order for it to work in the javascript?
I am asking this because we didn't saw any request to the backend trying to fetch this information.

Thanks
Joao

On Fri, Feb 23, 2018 at 11:12 AM Murtuza Zabuawala <murtuza.zabuawala@enterprisedb.com> wrote:
Hi Joao,

Just like 'nodes' & 'children' operation, You have to implement several other methods,

'obj' - To create, update, delete & properties for External Tables
Ref: ../foreign_tables/__init__.py: 193
Which will call associated methods, def create(..), def update(...), def delete(...) & def properties(...)

'sql' - Displays reversed engineered sql on SQL panel
Which will call to method def sql(...) method

'msql'Displays reversed engineered sql on Create/Properties dialog
Which will call to method def msql(...) method

'stats' -Displays object statistics sql on Statistics panel
Which will call to method def statistics(...) method

'dependency' - Displays object dependencies on Dependencies panel
Which will call to method def dependencies(...) method

'dependent' - Displays object dependents on SQL panel
Which will call to method def dependents(...) method

Hope that helps.

--
Regards,
Murtuza Zabuawala
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company


On Fri, Feb 23, 2018 at 9:08 PM, Joao De Almeida Pereira <jdealmeidapereira@pivotal.io> wrote:
Hello Hackers,
Need some pointers while creating new node on ACI Tree. 
In GreenPlum there is a concept of External Tables that are more or less similar to Foreign Wrappers, but different. So we started implementing a new node for it.

We copied the Foreign Wrappers node and started it playing with it. The current status:
We can see the External Tables node, when we open it we see the External Tables.
The problem that we are facing now is when we select a table and then press the tabs 'SQL' or Properties nothing happens. What do we need to do in order for this to work?

Maybe the choice of foreign Wrappers was not the best to start off, but we would appreciate some help to make this work.


Attached you can find the code that I currently have.

Thanks
Joao

Re: [pgadmin4] Creating a new Node in ACI Tree

From
Murtuza Zabuawala
Date:
Hi Joao,

On Fri, Feb 23, 2018 at 11:23 PM, Joao De Almeida Pereira <jdealmeidapereira@pivotal.io> wrote:
Hello Murtuza,
Do we have to have that present in python in order for it to work in the javascript?
 
​No, Just create a node modal in JS with sample fields like Name/Comment etc.
There are two flags in node modal, 
one of which responsible for displaying reversed engineered sql (flag: hasSQL)
​, other is responsible for displaying Dependancies and Dependants of the node on their respective Panel (flag: 
hasDepends)

-- Murtuza
 
I am asking this because we didn't saw any request to the backend trying to fetch this information.

Thanks
Joao

On Fri, Feb 23, 2018 at 11:12 AM Murtuza Zabuawala <murtuza.zabuawala@enterprisedb.com> wrote:
Hi Joao,

Just like 'nodes' & 'children' operation, You have to implement several other methods,

'obj' - To create, update, delete & properties for External Tables
Ref: ../foreign_tables/__init__.py: 193
Which will call associated methods, def create(..), def update(...), def delete(...) & def properties(...)

'sql' - Displays reversed engineered sql on SQL panel
Which will call to method def sql(...) method

'msql'Displays reversed engineered sql on Create/Properties dialog
Which will call to method def msql(...) method

'stats' -Displays object statistics sql on Statistics panel
Which will call to method def statistics(...) method

'dependency' - Displays object dependencies on Dependencies panel
Which will call to method def dependencies(...) method

'dependent' - Displays object dependents on SQL panel
Which will call to method def dependents(...) method

Hope that helps.

--
Regards,
Murtuza Zabuawala
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company


On Fri, Feb 23, 2018 at 9:08 PM, Joao De Almeida Pereira <jdealmeidapereira@pivotal.io> wrote:
Hello Hackers,
Need some pointers while creating new node on ACI Tree. 
In GreenPlum there is a concept of External Tables that are more or less similar to Foreign Wrappers, but different. So we started implementing a new node for it.

We copied the Foreign Wrappers node and started it playing with it. The current status:
We can see the External Tables node, when we open it we see the External Tables.
The problem that we are facing now is when we select a table and then press the tabs 'SQL' or Properties nothing happens. What do we need to do in order for this to work?

Maybe the choice of foreign Wrappers was not the best to start off, but we would appreciate some help to make this work.


Attached you can find the code that I currently have.

Thanks
Joao


Re: [pgadmin4] Creating a new Node in ACI Tree

From
Joao De Almeida Pereira
Date:
Thanks for the stearing, I finally found out the problem. I was missing an 's' in the end of one of the names

Joao

On Fri, Feb 23, 2018 at 10:19 PM Murtuza Zabuawala <murtuza.zabuawala@enterprisedb.com> wrote:
Hi Joao,

On Fri, Feb 23, 2018 at 11:23 PM, Joao De Almeida Pereira <jdealmeidapereira@pivotal.io> wrote:
Hello Murtuza,
Do we have to have that present in python in order for it to work in the javascript?
 
​No, Just create a node modal in JS with sample fields like Name/Comment etc.
There are two flags in node modal, 
one of which responsible for displaying reversed engineered sql (flag: hasSQL)
​, other is responsible for displaying Dependancies and Dependants of the node on their respective Panel (flag: 
hasDepends)

-- Murtuza
 
I am asking this because we didn't saw any request to the backend trying to fetch this information.

Thanks
Joao

On Fri, Feb 23, 2018 at 11:12 AM Murtuza Zabuawala <murtuza.zabuawala@enterprisedb.com> wrote:
Hi Joao,

Just like 'nodes' & 'children' operation, You have to implement several other methods,

'obj' - To create, update, delete & properties for External Tables
Ref: ../foreign_tables/__init__.py: 193
Which will call associated methods, def create(..), def update(...), def delete(...) & def properties(...)

'sql' - Displays reversed engineered sql on SQL panel
Which will call to method def sql(...) method

'msql'Displays reversed engineered sql on Create/Properties dialog
Which will call to method def msql(...) method

'stats' -Displays object statistics sql on Statistics panel
Which will call to method def statistics(...) method

'dependency' - Displays object dependencies on Dependencies panel
Which will call to method def dependencies(...) method

'dependent' - Displays object dependents on SQL panel
Which will call to method def dependents(...) method

Hope that helps.

--
Regards,
Murtuza Zabuawala
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company


On Fri, Feb 23, 2018 at 9:08 PM, Joao De Almeida Pereira <jdealmeidapereira@pivotal.io> wrote:
Hello Hackers,
Need some pointers while creating new node on ACI Tree. 
In GreenPlum there is a concept of External Tables that are more or less similar to Foreign Wrappers, but different. So we started implementing a new node for it.

We copied the Foreign Wrappers node and started it playing with it. The current status:
We can see the External Tables node, when we open it we see the External Tables.
The problem that we are facing now is when we select a table and then press the tabs 'SQL' or Properties nothing happens. What do we need to do in order for this to work?

Maybe the choice of foreign Wrappers was not the best to start off, but we would appreciate some help to make this work.


Attached you can find the code that I currently have.

Thanks
Joao