I have two tables defined as distributed in Citus based on the same field:

select create_distributed_table('gedi','clould_metadata_id');
select create_distributed_table('cloud_metadata','clould_metadata_id');

The clould_metadata_id is unique in cloud_metadata, gedi table stores millions of records, cloud_metadata stores around 3000.

When I try to inner join those tables using:

select * from cloud_metadata cm 
inner join gedi g 
on cm.clould_metadata_id = g.clould_metadata_id 

I get the error message "SQL Error [0A000]: ERROR: complex joins are only supported when all distributed tables are joined on their distribution columns with equal operator".

I believe that's precisely what I'm trying to do, join those tables using de distribution columns, so what I'm doing wrong?

1 Answer 1


Is possible you use 'create_reference_table()'. On this way is possible using join clausule. But this way working only if you don't need use 'create_distributed_table()'


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.