GithubHelp home page GithubHelp logo

Comments (11)

Fritte795 avatar Fritte795 commented on May 18, 2024 1

It would be possible, see 1.
We decided to continue development in our own repository as it gives us the opportunity to iterate faster and manage the repository ourselves. You can find the repositories here: Allgeier Secion.

from supabase-go.

Ra0k avatar Ra0k commented on May 18, 2024

Hey @pfennig42 , did you manage to filter results via joined tables? I have the same issue, and it drives me crazy. Would you mind to show me your solution? :)

from supabase-go.

pfennig42 avatar pfennig42 commented on May 18, 2024

Hi @Ra0k,

I just grabbed this snippet. Does this help you?

supabasecall := supabase.DB.From(table).Select("item,customer!inner(id, short_name, full_name)").Filter(`customer.id`, "eq", "0")

I filled the variables by heart, so I am only 80% sure it works. I would appreaciate the feedback!

from supabase-go.

Ra0k avatar Ra0k commented on May 18, 2024

Hi @pfennig42,

Thank you for the help and the quick response! Unfortunately, for me, the outcome is the same:

if err := supaClient.DB.From("Workspace").Select("id, name, WorkspaceUser!inner(user_id, role)").Filter(`WorkspaceUser.role`, "eq", "admin").Execute(&results); err != nil {
	fmt.Println(err)
	http.Error(w, "internal server error", http.StatusInternalServerError)
	return
}

Output:
42703: column Workspace.WorkspaceUser.role does not exist

Ps:
I only have camel case table names because I was not sure if _ causes problems or not.

from supabase-go.

pfennig42 avatar pfennig42 commented on May 18, 2024

The only thing I could think about is removing the spaces inside the querys?

Otherwise I would trace the error until Postgres. There should be the translation error

from supabase-go.

Ra0k avatar Ra0k commented on May 18, 2024

I just wonder why it works for you. Do you use the latest version of supabase-go?

In my version (latest). Everything is sanitized.

func SanitizeParam(param string) string {
	if strings.ContainsAny(param, reservedChars) {
		return fmt.Sprintf("\"%s\"", param)
	}
	return param
}

func (b *FilterRequestBuilder) Filter(column, operator, criteria string) *FilterRequestBuilder {
	if b.negateNext {
		b.negateNext = false
		operator = "not." + operator
	}
	b.params.Add(SanitizeParam(column), operator+"."+criteria)
	return b
}

As far as I understand, it should always sanitize the input so it should always break the join filtering.

from supabase-go.

Ra0k avatar Ra0k commented on May 18, 2024

Okay, I figured out what happened. Since you opened this issue, this dependency was changed and probably has caused to break this feature. The same happened to #28

from supabase-go.

pfennig42 avatar pfennig42 commented on May 18, 2024

Alright. Thanks for letting me know!

from supabase-go.

Fritte795 avatar Fritte795 commented on May 18, 2024

@Ra0k There is currently a known problem with escaped characters in filter functions. Compare with #28.
A temporary solution is to use the generic Filter() function. This function behaves differently and worked at least for me.

The problem lies indeed not in this repository but here. Currently two main strategies are considered after talking to @nedpals:

  1. Directly implement the postgrest-go functionality in this repository to speed up development. We would not need releases in two repositories to take effect.
    a. We would need to fix the behavior of sanitizing to mimic the official postgrest-js repository .
  2. Use another postgrest-go library that is in a more advanced state and is better maintained.

from supabase-go.

whoiscarlo avatar whoiscarlo commented on May 18, 2024

@Fritte795 forgive me the naivety of my question but is it possible to just take the nedpals/postgres-go repo and importing it into this repo and creating a PR?

from supabase-go.

stav avatar stav commented on May 18, 2024
supabasecall := supabase.DB.From(table).Select("item,customer!inner(id, short_name, full_name)").Filter(`customer.id`, "eq", "0")

The filter is for the outer table:

Filter(`table.id`, "eq", "0")

So would this be right?

Filter(`id`, "eq", "0")

As long as you setup the foreign key relationships in the database it should work.

from supabase-go.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.